| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 |
- import React, { Component } from 'react';
- //import { withRouter } from 'next/router'
- import ContentWrapper from '@/components/Layout/ContentWrapper';
- import { Row, Col, Card, Button, CardHeader, CardFooter, Table, Nav, NavItem, NavLink, TabContent, TabPane, Pagination, PaginationItem, PaginationLink, ListGroup, ListGroupItem, Dropdown, DropdownMenu, DropdownToggle, DropdownItem } from 'reactstrap';
- //import { Row, Col, Card, CardHeader, CardFooter, Table, Pagination, PaginationItem, PaginationLink } from 'reactstrap';
- // import { Row, Col, Dropdown, DropdownMenu, DropdownToggle, DropdownItem } from 'reactstrap';
- import Select from 'react-select';
- import { GoogleMap, LoadScript, Marker } from '@react-google-maps/api';
- import { GetServerSideProps, NextPage } from 'next';
- import ErrorPage from 'next/error';
- import fetch from 'node-fetch';
- import https from 'https';
- const containerStyle = {
- width: '100%',
- height: '155px'
- };
- import FormWizardVertical from './sanksi.proses.wizard.js';
- var jenisPelanggaran = [];
- //const qpt_id = {};
- //http://localhost:3000/app/profile?ptId=0BCE4DB7-B207-445D-8D03-0C54B7688252
- // Demo with custom style
- const DemoMapCustomStyle = props => (
- <GoogleMap mapContainerStyle={containerStyle} zoom={14} center={props.location} options={{ styles: props.mapStyles }}>
- <Marker position={props.location} />
- </GoogleMap>
- )
- const styleHeaderText = {
- color: 'brown'
- }
- class Profile extends Component {
- toggleTab = tab => {
- if (this.state.activeTab !== tab) {
- this.setState({
- activeTab: tab
- });
- }
- }
-
- static async getInitialProps({ query }) {
-
- const httpsAgent = new https.Agent({
- rejectUnauthorized: false,
- });
-
- //console.log('post agent : ');
- //const res = await fetch('https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/707C3895-B546-4DA5-A6A7-EFE7461A7C7E', {
- // const res = await fetch('https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/'+query.ptId, {
- // method: 'get',
- // headers: new Headers({
- // 'Authorization': 'Bearer 5b62f743-eef2-3370-8c66-6951b2e9c2c5',
- // 'Accept': 'application/json'
- // }),
- // agent: httpsAgent
- // }
- // )
- //console.log('res : ', res);
-
- //const json = await res.json();
- //console.log('json : ', json);
- const json = [
- {
- "id": "0BCE4DB7-B207-445D-8D03-0C54B7688252",
- "kode": "031031",
- "kode_satker": null,
- "nama": "Universitas Satyagama",
- "nama_singkat": "USG",
- "sk_pendirian": "0742/O/1990",
- "tgl_sk_pendirian": "1990-12-22",
- "sk_operasional": null,
- "tgl_sk_operasional": null,
- "status": "N",
- "alamat": {
- "jalan": "Jalan Kamal Raya No 2-A Cengkareng",
- "rt": null,
- "rw": null,
- "dusun": null,
- "kelurahan": "-",
- "kode_pos": "11730",
- "kab_kota": {
- "id": "016200",
- "nama": "Kota Jakarta Barat"
- }
- },
- "propinsi": {
- "id": "010000",
- "nama": "Prov. D.K.I. Jakarta"
- },
- "telepon": "(021) 5452377-78",
- "faksimile": "(021) 54391325",
- "website": "www.satyagama.ac.id",
- "email": "info@satyagama.ac.id",
- "status_milik": {
- "id": "3",
- "nama": "Yayasan"
- },
- "pembina": {
- "id": "728989DD-251E-4516-BE2C-BA17A93A5C51",
- "nama": "LLDIKTI III"
- },
- "bentuk_pendidikan": {
- "id": "23",
- "nama": "Universitas"
- },
- "last_update": "2021-08-22",
- "negara": {
- "id": "ID",
- "nama": "Indonesia"
- }
- }
- ]
- return { data: json[0] }
- }
- state = {
- dropdownOpen: false,
- dropdownOpenUpload: false,
- timelineAlt: false,
- location: { lat: 33.7906731, lng: -117.8357194 },
- customStyle: [{featureType:'water',stylers:[{visibility:'on'},{color:'#bdd1f9'}]},{featureType:'all',elementType:'labels.text.fill',stylers:[{color:'#334165'}]},{featureType:'landscape',stylers:[{color:'#e9ebf1'}]},{featureType:'road.highway',elementType:'geometry',stylers:[{color:'#c5c6c6'}]},{featureType:'road.arterial',elementType:'geometry',stylers:[{color:'#fff'}]},{featureType:'road.local',elementType:'geometry',stylers:[{color:'#fff'}]},{featureType:'transit',elementType:'geometry',stylers:[{color:'#d8dbe0'}]},{featureType:'poi',elementType:'geometry',stylers:[{color:'#cfd5e0'}]},{featureType:'administrative',stylers:[{visibility:'on'},{lightness:33}]},{featureType:'poi.park',elementType:'labels',stylers:[{visibility:'on'},{lightness:20}]},{featureType:'road',stylers:[{color:'#d8dbe0',lightness:20}]}],
- listA: [],
- //isChecked:true,
- selectedOptionMulti: [],
- activeTab: 'tasks'
-
- }
- toggleDD = () => this.setState({
- dropdownOpen: !this.state.dropdownOpen
- })
- toggleDDUpload = () => this.setState({
- dropdownOpenUpload: !this.state.dropdownOpenUpload
- })
- toggleTimeline = e => {
- this.setState({
- timelineAlt: e.target.checked
- })
- }
- // // handle particular changes on each checkbox
- // onHandleChange(listName,index) {
-
- // //set state to checkbox and data in promise mode
- // this.setState({
- // [listName]: this.state[listName].map(
- // (item, i) => (
-
- // index !== i ?
- // item : {...item, checked: !this.state[listName][index].checked}
- // )
- // )
- // });
- // }
- // state = {
- // location: { lat: 33.7906731, lng: -117.8357194 },
- // customStyle: [{featureType:'water',stylers:[{visibility:'on'},{color:'#bdd1f9'}]},{featureType:'all',elementType:'labels.text.fill',stylers:[{color:'#334165'}]},{featureType:'landscape',stylers:[{color:'#e9ebf1'}]},{featureType:'road.highway',elementType:'geometry',stylers:[{color:'#c5c6c6'}]},{featureType:'road.arterial',elementType:'geometry',stylers:[{color:'#fff'}]},{featureType:'road.local',elementType:'geometry',stylers:[{color:'#fff'}]},{featureType:'transit',elementType:'geometry',stylers:[{color:'#d8dbe0'}]},{featureType:'poi',elementType:'geometry',stylers:[{color:'#cfd5e0'}]},{featureType:'administrative',stylers:[{visibility:'on'},{lightness:33}]},{featureType:'poi.park',elementType:'labels',stylers:[{visibility:'on'},{lightness:20}]},{featureType:'road',stylers:[{color:'#d8dbe0',lightness:20}]}]
- // }
-
- // renderTableData() {
- // //const dataTable = this.props.data;
- // //if (dataTable === true ) {
- // return this.state.tbljenisPelanggaran.map((jp,index) => {
-
- // return (
- // // <tr>
- // // <td>
- // // <label>{index+1}</label>
- // // </td>
- // // <td>
- // // <div className="media align-items-center">
- // // <a className="mr-3" href="">
- // // <img className="img-fluid rounded thumb64" src="/static/img/dummy-search.png" alt="Dummy"/>
- // // </a>
- // // <div className="media-body d-flex">
- // // <div>
- // // <h4 className="m-0">{pt.nama}</h4>
- // // <small className="text-muted">{pt.sk_pendirian} - {pt.website} - {pt.email}</small>
- // // <p>{pt.alamat.jalan}</p>
- // // </div>
- // // <div className="ml-auto">
- // // <Button color="info" size="sm" onClick={(e) => this.handleClick(e, pt.id)}>View</Button>
- // // </div>
- // // </div>
- // // </div>
- // // </td>
- // // </tr>
- // <tr>
- // <td><label>{index+1}</label></td>
- // <td>
- // <div className="media align-items-center">
- // <div className="media-body d-flex">
- // <div>
-
- // <p>{jp.Pelanggaran}</p>
- // <p>TMT : {jp.TMTBulan} Bulan</p>
- // <p>Level Pelanggaran : {jp.LabelSangsi}</p>
-
- // </div>
- // </div>
- // </div>
- // </td>
- // <td>
- // <div className="media align-items-center">
- // <div className="media-body d-flex">
- // <div>
- // <p>{jp.Sangsi}</p>
- // <p>Keterangan : {jp.KeteranganSangsi}</p>
- // </div>
- // </div>
- // </div>
- // </td>
- // <td>
- // <div className="checkbox c-checkbox">
- // <label>
- // {/* <input type="checkbox" checked={this.state.listA[index].checked} onChange={e => this.handleChange('listA', index)}/> */}
- // <input
- // //name="cb"{jp.idPelanggaran}
- // type="checkbox"
- // // checked={
- // // jp.checked=true
- // // }
- // checked={this.state.tbljenisPelanggaran[jp.idPelanggaran].checked}
- // //{this.state.listA[0].checked}
- // onChange={
- // e => this.onHandleChange('tbljenisPelanggaran',jp.idPelanggaran)
- // }
- // />
- // <span className="fa fa-check"></span>
- // </label>
- // </div>
- // </td>
- // </tr>
- // )
- // })
- // //}
- // }
- /* handleApplyClick = () => {
- const _noSangsi = document.getElementById('noSangsi').value
-
- const _hisJP=[];
- //Get data for filter by checked
- this.state.tbljenisPelanggaran.filter(
- _jp => _jp.checked == true
- ).map(selectedPelanggaran => (
- _hisJP.push(selectedPelanggaran)
- ));
-
- this.state.hisJenisPelanggaran.push(
- {
- "noSangsi":_noSangsi,
- "pelanggaran":_hisJP
- }
- )
- console.log("Result hisJenisPelanggaran : ", this.state.hisJenisPelanggaran)
- } */
- render() {
- const { selectedOptionMulti } = this.state;
- return (
- <ContentWrapper unwrap>
- <div className="bg-cover" style={{backgroundImage: 'url(/static/img/profile-bg.png)'}}>
- <div className="p-4 text-center" style={styleHeaderText} >
- <img className="img-thumbnail rounded-circle thumb128" src="/static/img/univ-avatar.png" alt="Avatar"/>
- <h3 className="m-0">{this.props.data.nama}</h3>
- <p>{this.props.data.website}</p>
- <p>{this.props.data.sk_pendirian}</p>
- <p>{this.props.data.alamat.jalan}</p>
- </div>
- </div>
- {/* <div className="text-center bg-gray-dark p-3 mb-4">
- <Row>
- <Col xs="4" className="br">
- <h3 className="m-0">400</h3>
- <p className="m-0">
- <span className="d-none d-md-inline">Profile</span>
- <span>Views</span>
- </p>
- </Col>
- <Col xs="4" className="br">
- <h3 className="m-0">2000</h3>
- <p className="m-0">Likes</p>
- </Col>
- <Col xs="4">
- <h3 className="m-0">100</h3>
- <p className="m-0">Following</p>
- </Col>
- </Row>
- </div> */}
- {/* START card */}
- <div className="p-3">
- {/* <Card className="card-default">
- <CardHeader> */}
- {/* START panel tab */}
- {/* <div className="card card-transparent"> */}
- <Nav tabs justified>
- <NavItem>
- <NavLink className={ this.state.activeTab === 'tasks' ? 'active':'' }
- onClick={() => { this.toggleTab('tasks'); }}
- >
- <em className="far fa-clock fa-fw"></em> History Jenis Pelanggaran
- </NavLink>
- </NavItem>
- {/* <NavItem>
- <NavLink className={ this.state.activeTab === 'trans' ? 'active':'' }
- onClick={() => { this.toggleTab('trans'); }}
- >
- <em className="fas fa-info-circle"></em> Action Jenis Pelanggaran
- </NavLink>
- </NavItem> */}
- <NavItem>
- <NavLink className={ this.state.activeTab === 'wizard' ? 'active':'' }
- onClick={() => { this.toggleTab('wizard'); }}
- >
- <em className="fas fa-info-circle"></em> Action Jenis Pelanggaran
- </NavLink>
- </NavItem>
- </Nav>
-
- <TabContent activeTab={this.state.activeTab} className="bg-white p-0">
- <TabPane tabId="tasks">
- <div className="p-3">
- {/* START card */}
- <Card className="card-default">
- <CardHeader>Daftar Pelanggaran</CardHeader>
- {/* START table-responsive */}
- <Table striped bordered hover responsive>
- <thead>
- <tr>
- <th>ID Laporan</th>
- <th>UUID Pelanggaran</th>
- <th>Progres</th>
- <th>Aktivitas Terakhir</th>
- <th></th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>
- {/* <div className="ml-auto">ABCDEFGH012345</div> */}
- <div className="d-flex align-items-center mb-3">BI:54678</div>
- </td>
- <td>
- {/* <div className="ml-auto">ABCDEFGH012345</div> */}
- <div className="d-flex align-items-center mb-3">ABCDEFGH012345</div>
- </td>
- <td>
- <div className="progress progress-sm">
- <div className="progress-bar progress-bar-striped bg-success" role="progressbar" style={{width: '10%'}}>
- {/* <span className="sr-only">80% Complete</span> */}
- {/* <div className="radial-bar radial-bar-50 radial-bar-xs" data-label="50%"></div> */}
- </div>
- </div>
- </td>
- <td>
- <div className="d-flex align-items-center mb-3">05/05/2021</div>
- {/* <div className="ml-auto">05/05/2021</div> */}
- </td>
- <td>
- <div className="d-flex align-items-center mb-3">
- <Button color="info" size="sm" onClick={(e) => this.handleClick(e, pt.id)}>Lanjutkan</Button>
- </div>
- </td>
- </tr>
-
- </tbody>
- </Table>
- {/* END table-responsive */}
- </Card>
- {/* END card */}
-
- </div>
- </TabPane>
-
- <TabPane tabId="wizard" className="p-3">
- <FormWizardVertical />
- </TabPane>
- </TabContent>
- {/* </div> */}
- {/* END panel tab */}
- {/* </CardHeader>
- </Card> */}
- </div>
- {/* START card */}
- <div className="p-3">
-
- </div>
- </ContentWrapper>
- );
- }
- }
- export default Profile;
|