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

Initial commit

parent 1f1ef58f
......@@ -3044,11 +3044,6 @@
"resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
"integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g=="
},
"buffer-writer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
"integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="
},
"buffer-xor": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
......@@ -4612,6 +4607,14 @@
}
}
},
"datatables.net": {
"version": "1.10.20",
"resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.20.tgz",
"integrity": "sha512-4E4S7tTU607N3h0fZPkGmAtr9mwy462u+VJ6gxYZ8MxcRIjZqHy3Dv1GNry7i3zQCktTdWbULVKBbkAJkuHEnQ==",
"requires": {
"jquery": ">=1.7"
}
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
......@@ -9720,6 +9723,22 @@
"prepend-http": "^1.0.0",
"query-string": "^4.1.0",
"sort-keys": "^1.0.0"
},
"dependencies": {
"query-string": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
"integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
"requires": {
"object-assign": "^4.1.0",
"strict-uri-encode": "^1.0.0"
}
},
"strict-uri-encode": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
}
}
},
"npm-run-path": {
......@@ -10074,11 +10093,6 @@
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
},
"packet-reader": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
"integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
},
"pako": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
......@@ -10243,68 +10257,6 @@
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"pg": {
"version": "7.17.1",
"resolved": "https://registry.npmjs.org/pg/-/pg-7.17.1.tgz",
"integrity": "sha512-SYWEip6eADsgDQIZk0bmB2JDOrC8Xu6z10KlhlXl03NSomwVmHB6ZTVyDCwOfT6bXHI8QndJdk5XxSSRXikaSA==",
"requires": {
"buffer-writer": "2.0.0",
"packet-reader": "1.0.0",
"pg-connection-string": "0.1.3",
"pg-packet-stream": "^1.1.0",
"pg-pool": "^2.0.9",
"pg-types": "^2.1.0",
"pgpass": "1.x",
"semver": "4.3.2"
},
"dependencies": {
"semver": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz",
"integrity": "sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c="
}
}
},
"pg-connection-string": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz",
"integrity": "sha1-2hhHsglA5C7hSSvq9l1J2RskXfc="
},
"pg-int8": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
},
"pg-packet-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz",
"integrity": "sha512-kRBH0tDIW/8lfnnOyTwKD23ygJ/kexQVXZs7gEyBljw4FYqimZFxnMMx50ndZ8In77QgfGuItS5LLclC2TtjYg=="
},
"pg-pool": {
"version": "2.0.9",
"resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.9.tgz",
"integrity": "sha512-gNiuIEKNCT3OnudQM2kvgSnXsLkSpd6mS/fRnqs6ANtrke6j8OY5l9mnAryf1kgwJMWLg0C1N1cYTZG1xmEYHQ=="
},
"pg-types": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
"integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
"requires": {
"pg-int8": "1.0.1",
"postgres-array": "~2.0.0",
"postgres-bytea": "~1.0.0",
"postgres-date": "~1.0.4",
"postgres-interval": "^1.1.0"
}
},
"pgpass": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz",
"integrity": "sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=",
"requires": {
"split": "^1.0.0"
}
},
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
......@@ -11395,29 +11347,6 @@
"uniq": "^1.0.1"
}
},
"postgres-array": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
"integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="
},
"postgres-bytea": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
"integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU="
},
"postgres-date": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.4.tgz",
"integrity": "sha512-bESRvKVuTrjoBluEcpv2346+6kgB7UlnqWZsnbnCccTNq/pqfj1j6oBaN5+b/NrDXepYUT/HKadqv3iS9lJuVA=="
},
"postgres-interval": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
"integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
"requires": {
"xtend": "^4.0.0"
}
},
"prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
......@@ -11590,12 +11519,13 @@
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
},
"query-string": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
"integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
"version": "6.10.1",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-6.10.1.tgz",
"integrity": "sha512-SHTUV6gDlgMXg/AQUuLpTiBtW/etZ9JT6k6RCtCyqADquApLX0Aq5oK/s5UeTUAWBG50IExjIr587GqfXRfM4A==",
"requires": {
"object-assign": "^4.1.0",
"strict-uri-encode": "^1.0.0"
"decode-uri-component": "^0.2.0",
"split-on-first": "^1.0.0",
"strict-uri-encode": "^2.0.0"
}
},
"querystring": {
......@@ -13137,13 +13067,10 @@
"wbuf": "^1.7.3"
}
},
"split": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
"integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
"requires": {
"through": "2"
}
"split-on-first": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
"integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="
},
"split-string": {
"version": "3.1.0",
......@@ -13321,9 +13248,9 @@
"integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
},
"strict-uri-encode": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
"integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY="
},
"string-length": {
"version": "2.0.0",
......@@ -13748,6 +13675,11 @@
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
"tinymce-line-height-plugin": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/tinymce-line-height-plugin/-/tinymce-line-height-plugin-1.0.0.tgz",
"integrity": "sha1-PDfYNz6z7jLyUmzKdZBTwp3sOf8="
},
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
......
......@@ -8,12 +8,11 @@
"axios": "^0.19.1",
"bootstrap": "^4.3.1",
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"datatables.net": "^1.10.20",
"jquery": "^3.4.1",
"js2xmlparser": "^4.0.0",
"node-gyp": "^6.1.0",
"pg": "^7.17.1",
"query-string": "^6.10.1",
"react": "^16.10.2",
"react-dom": "^16.10.2",
"react-expand-collapse": "^0.2.0",
......@@ -25,6 +24,7 @@
"redux": "^4.0.4",
"request": "^2.88.0",
"request-cookies": "^1.1.0",
"tinymce-line-height-plugin": "^1.0.0",
"xml2js": "^0.4.23"
},
"scripts": {
......
......@@ -4,7 +4,7 @@
<head>
<meta charset="utf-8" />
<link rel="icon" href="visionet.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000" />
<meta name="description" content="Web site created using create-react-app" />
<link rel="apple-touch-icon" href="logo192.png" />
......@@ -16,6 +16,7 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.6.1/react-dom.min.js"></script>
<script src="//tinymce.cachefly.net/4.2/tinymce.min.js"></script>
<script type="text/javascript" src="path/xmlToJSON.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
......
......@@ -3,9 +3,11 @@ import { BrowserRouter, Route, Switch } from 'react-router-dom';
import PrivateRoute from './PrivateRoute';
import FormLogin from './FormLogin';
import Home from './Home';
import PreviewDocument from './PreviewDocument';
import YourDocument from './YourDocument';
import ManageUser from './ManageUser';
import FormCreate from './FormCreateDocument';
import FormCreateUpdateRole from './FormCreateUpdateRole';
import FormCreateDocument from './FormCreateDocument';
import FormApprover from './FormApproverDocument';
import FormRevision from './FormRevisionDocument';
import NotFoundPage from './NotFoundPage';
......@@ -18,9 +20,11 @@ class App extends Component {
<Switch>
<Route exact path='/' component={FormLogin} />
<PrivateRoute exact path="/home" component={Home} />
<PrivateRoute exact path="/previewdocument" component={PreviewDocument}/>
<PrivateRoute exact path="/yourdocument" component={YourDocument} />
<Route exact path="/manageuser" component={ManageUser} />
<PrivateRoute exact path="/formcreate" component={FormCreate} />
<PrivateRoute exact path="/manageuser" component={ManageUser} />
<PrivateRoute exact path="/formcreateupdaterole" component={FormCreateUpdateRole} />
<PrivateRoute exact path="/formcreatedocument" component={FormCreateDocument} />
<PrivateRoute exact path="/formapprover" component={FormApprover} />
<PrivateRoute exact path="/formrevision" component={FormRevision} />
<Route path='*' component={NotFoundPage} />
......
var request = require('request');
var Cookie = require('request-cookies').Cookie;
var username = "admin";
var password = "admin";
request.get('http://10.10.88.182:8080/bonita/loginservice?username=' + username +
'&password=' + password + '&redirect=false', function (error, response, body) {
//console.log('response : ', response)
var rawcookies = response.headers['set-cookie'];
request({
url: 'http://10.10.88.182:8080/bonita/API/bpm/process?c=100&p=0',
method: 'get',
headers: {
Cookie: rawcookies
}
}, function (error, response, body) {
console.log(JSON.parse(body));
})
});
\ No newline at end of file
import React, { Component } from 'react';
const $ = require('jquery');
$.DataTable = require('datatables.net');
export class DataTableHome extends Component {
componentDidMount = () => {
this.$el = $(this.el)
this.$el.DataTable({
"data": this.props.data,
"columns": [
{ "title": "Code" },
{
"title": "Subject",
"fnCreatedCell": function (nTd, data) {
$(nTd).html("<a class='text-decoration-none' href='localhost:3000/previewdocument?subject=" + data + "' target='_blank' rel='noopener noreferrer'>" + data + "</a>");
}
},
{ "title": "Type" },
{ "title": "Revision Date" },
{ "title": "Effective Date" },
{ "title": "Business Process" },
]
})
}
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
import React, { Component } from 'react';
import './DocumentManagement.css';
const $ = require('jquery');
$.DataTable = require('datatables.net');
$(document).ready(function() {
$("#btn-delete").click(function(){
alert("Ini button delete!");
});
});
export class DataTableManageUser extends Component {
componentDidMount = () => {
this.$el = $(this.el)
this.$el.DataTable({
"data": this.props.data,
"columns": [
{ "title": "No" },
{ "title": "User Id" },
{ "title": "User Name" },
{ "title": "Department" },
{ "title": "Role" },
{ "title": "Manager Name" },
{ "title": "Email" },
{
"title": "Action",
"render": function (data, type, row) {
return "<a href='/formcreateupdaterole?edit=" + data + "' target='_self' rel='noopener noreferrer'><button type='button' class='button-1 btn btn-success'>Edit</button></a>&nbsp;<a href='/manageuser?delete=" + data + "' target='_self' rel='noopener noreferrer'><button type='button' class='button-1 btn btn-danger'>Delete</button></a>";
}
},
]
})
}
$
componentWillUnmount = () => {
this.$el.DataTable.destroy(true);
}
handleDeleteRole = () => {
alert("Ini tombol delete!");
}
render() {
return (
<div>
<table className="display" width="100%" ref={el => this.el = el}></table>
</div>
)
}
}
\ No newline at end of file
import React, { Component } from 'react';
const $ = require('jquery');
$.DataTable = require('datatables.net');
export class DataTableYourDocument extends Component {
componentDidMount = () => {
this.$el = $(this.el)
this.$el.DataTable({
"data": this.props.data,
"columns": [
{ "title": "No" },
{ "title": "Code" },
{ "title": "Subject" },
{ "title": "Status" },
{ "title": "Tracking" },
{ "title": "Creator" },
]
})
}
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
......@@ -11,4 +11,15 @@
}
.rotate-icon {
transform: rotate(180deg);
}
.my-table {
table-layout: fixed;
word-wrap: break-word;
}
.button-1 {
width: 90px;
}
.background-grey {
background: rgb(50, 50, 50);
width: 100%;
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
......@@ -84,16 +84,16 @@ class FormLogin extends React.Component {
<div className="login-form">
<div className="container">
<div className="row justify-content-center">
<div className="col-lg-5 col-md-5 col-sm-5 col-xs-5">
<div className="col-xl-5 col-lg-6 col-md-8 col-sm-9">
<div className="card">
<div className="card-header">
<div className="card-header m-3">
<h2>Sign In</h2>
</div>
<div className="card-body">
<form name="form-login" onKeyDown={(e) => this.handleKeyDownLogin(e)}>
<form name="form-login" onKeyDown={(e) => this.handleKeyDownLogin(e)}>
<div className="form-group" >
<label className="font-weight-bold">Username</label>
<input type="text" className={"form-control" + (this.state.submitted && !this.state.username ? " is-invalid" : "")} onChange={(e) => this.handleChangeUsername(e)} />
<input type="text" maxLength="25" className={"form-control" + (this.state.submitted && !this.state.username ? " is-invalid" : "")} onChange={(e) => this.handleChangeUsername(e)} />
{
this.state.submitted && this.state.username == "" &&
<div className="help-block text-danger">Username is required</div>
......@@ -101,7 +101,7 @@ class FormLogin extends React.Component {
</div>
<div className="form-group" >
<label className="font-weight-bold">Password</label>
<input type="password" className={"form-control" + (this.state.submitted && !this.state.password ? " is-invalid" : "")} onChange={(e) => this.handleChangePassword(e)} />
<input type="password" maxLength="15" className={"form-control" + (this.state.submitted && !this.state.password ? " is-invalid" : "")} onChange={(e) => this.handleChangePassword(e)} />
{
this.state.submitted && this.state.password == "" &&
<div className="help-block text-danger">Password is required</div>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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