diff --git a/frontend/src/components/modals/VADaftarUserDelete.vue b/frontend/src/components/modals/VADaftarUserDelete.vue new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/frontend/src/components/modals/VADaftarUserDetail.vue b/frontend/src/components/modals/VADaftarUserDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..9ea172b573201c5d9a8a07e78a7314562d340048 --- /dev/null +++ b/frontend/src/components/modals/VADaftarUserDetail.vue @@ -0,0 +1,49 @@ +<template> + <div class="modal fade" id="modal-detail"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + <h4 class="modal-title">Informasi Detil</h4> + </div> + <div class="modal-body"> + <dl class="dl-horizontal"> + <dt>ID</dt> + <dd>{{ userData.id }}</dd> + <dt>Role</dt> + <dd>{{ userData.role }}</dd> + <dt>Nama</dt> + <dd>{{ userData.nama }}</dd> + <dt>Email</dt> + <dd>{{ userData.role }}</dd> + <dt>Username</dt> + <dd>{{ userData.username }}</dd> + <dt>Dinas</dt> + <dd>{{ userData.dinas }}</dd> + </dl> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> + </div> + </div> + </div> + </div> +</template> + +<script> +export default { + name: 'DaftarUserDetail', + props: { + userData: { + type: Object, + default () { + return { + name: '' + } + } + } + } +} +</script> diff --git a/frontend/src/components/modals/VADaftarUserEdit.vue b/frontend/src/components/modals/VADaftarUserEdit.vue new file mode 100644 index 0000000000000000000000000000000000000000..e72c46d00faa1a4f803d164adaf3ebbbcac56868 --- /dev/null +++ b/frontend/src/components/modals/VADaftarUserEdit.vue @@ -0,0 +1,77 @@ +<template> + <div class="modal fade" id="modal-edit"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + <h4 class="modal-title">Edit Entry</h4> + </div> + <div class="modal-body"> + <form class="form-horizontal"> + <div class="form-group"> + <label for="user-id" class="col-sm-3 control-label">ID</label> + <div class="col-sm-8"> + <input class="form-control" id="user-id" :value="userData.id"> + </div> + </div> + <div class="form-group"> + <label for="role" class="col-sm-3 control-label">Role</label> + <div class="col-sm-8"> + <select class="form-control" id="role"> + <option>Admin diskominfo</option> + <option>Member diskominfo</option> + </select> + </div> + </div> + <div class="form-group"> + <label for="name" class="col-sm-3 control-label">Nama</label> + <div class="col-sm-8"> + <input class="form-control" id="name" :value="userData.nama"> + </div> + </div> + <div class="form-group"> + <label for="email" class="col-sm-3 control-label">Email</label> + <div class="col-sm-8"> + <input type="email" class="form-control" id="email" :value="userData.email"> + </div> + </div> + <div class="form-group"> + <label for="username" class="col-sm-3 control-label">Username</label> + <div class="col-sm-8"> + <input class="form-control" id="username" :value="userData.username"> + </div> + </div> + <div class="form-group"> + <label for="dinas" class="col-sm-3 control-label">Dinas</label> + <div class="col-sm-8"> + <input class="form-control" id="dinas" :value="userData.dinas"> + </div> + </div> + </form> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> + <button type="button" class="btn btn-primary">Save changes</button> + </div> + </div> + </div> + </div> +</template> + +<script> +export default { + name: 'DaftarUserEdit', + props: { + userData: { + type: Object, + default () { + return { + name: '' + } + } + } + } +} +</script> diff --git a/frontend/src/lib/scripts.js b/frontend/src/lib/scripts.js index 8baa4f5183cb0c0ba65ea220c766354b7c3c092c..83985871d3568442eff61b80f8d349777ac4b9e8 100644 --- a/frontend/src/lib/scripts.js +++ b/frontend/src/lib/scripts.js @@ -1,3 +1,4 @@ import 'expose-loader?$!expose-loader?jQuery!jquery' import 'admin-lte' import 'bootstrap' +import axios from 'axios' diff --git a/frontend/src/pages/daftar_user.vue b/frontend/src/pages/daftar_user.vue index 899ee05fc7761358da8be3015100bce80c5c44b0..53f283a873b6859b9de54d75e300c0326f65ef4c 100644 --- a/frontend/src/pages/daftar_user.vue +++ b/frontend/src/pages/daftar_user.vue @@ -18,139 +18,97 @@ </div> </div> </div> - <div class="modal fade" id="modal-edit"> - <div class="modal-dialog"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"> - <span aria-hidden="true">×</span> - </button> - <h4 class="modal-title">Edit Entry</h4> - </div> - <div class="modal-body"> - <form class="form-horizontal"> - <div class="form-group"> - <label for="user_id" class="col-sm-3 control-label">ID</label> - <div class="col-sm-8"> - <input class="form-control" id="user_id"> - </div> - </div> - <div class="form-group"> - <label for="role" class="col-sm-3 control-label">Role</label> - <div class="col-sm-8"> - <select class="form-control" id="role"> - <option>Admin diskominfo</option> - <option>Member diskominfo</option> - </select> - </div> - </div> - <div class="form-group"> - <label for="name" class="col-sm-3 control-label">Nama</label> - <div class="col-sm-8"> - <input class="form-control" id="name"> - </div> - </div> - <div class="form-group"> - <label for="email" class="col-sm-3 control-label">Email</label> - <div class="col-sm-8"> - <input type="email" class="form-control" id="email"> - </div> - </div> - <div class="form-group"> - <label for="username" class="col-sm-3 control-label">Username</label> - <div class="col-sm-8"> - <input class="form-control" id="username"> - </div> - </div> - <div class="form-group"> - <label for="password" class="col-sm-3 control-label">Password</label> - <div class="col-sm-8"> - <input type="password" class="form-control" id="password"> - </div> - </div> - <div class="form-group"> - <label for="dinas" class="col-sm-3 control-label">Dinas</label> - <div class="col-sm-8"> - <input class="form-control" id="dinas"> - </div> - </div> - </form> - </div> - <div class="modal-footer"> - <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> - <button type="button" class="btn btn-primary">Save changes</button> - </div> - </div> - </div> - </div> + <va-daftar-user-edit :userData="passedUserData"></va-daftar-user-edit> + <va-daftar-user-detail :userData="passedUserData"></va-daftar-user-detail> </section> </div> </template> <script> -require('jquery') +import VADaftarUserEdit from '../components/modals/VADaftarUserEdit.vue' +import VADaftarUserDetail from '../components/modals/VADaftarUserDetail.vue' +import axios from 'axios' require('datatables.net-bs') -$(document).ready(function() { - var table = $('#user-table').DataTable({ - 'columns': [ - {'data': 'id', 'title': 'ID'}, - {'data': 'nama', 'title': 'Nama'}, - {'data': 'role', 'title': 'Role'}, - {'data': 'dinas', 'title': 'Dinas'}, - {'title': 'Action'} - ], - 'columnDefs': [{ - 'targets': -1, - 'data': null, - 'defaultContent': ` - <div class="col-sm-3"> - <i class="fa fa-info-circle fa-2x" data-toggle="tooltip modal" title="Details"></i> - </div> - <div class="col-sm-3"> - <div class="table-actions" data-toggle="modal" data-target="#modal-edit"> - <i class="fa fa-edit fa-2x" data-toggle="tooltip" title="Edit"></i> - </div> - </div> - <div class="col-sm-3"> - <i class="fa fa-trash fa-2x" data-toggle="tooltip" title="Delete"></i> - </div> - ` - }] - }); - - table.rows.add([ - { - 'id': '1', - 'role': 'Admin Diskominfo', - 'nama': 'Kevin', - 'email': 'WWW@YYY.ZZZ', - 'username': 'kevinfe', - 'password': '#HASHED#', - 'dinas': 'Diskominfo' +export default { + name: 'DaftarUser', + data: function () { + return { + userData: [], + passedUserData: {} + } + }, + methods: { + getData() { + let vm = this + axios.get('http://localhost:8081/getusers').then((res) => { + vm.userData = res.data + }, (error) => { + console.log('error') + }) } - - ]).draw(); + }, + mounted: function () { + let vm = this + vm.getData() + vm.$nextTick(function () { + var table = $('#user-table').DataTable({ + 'columns': [ + {'data': 'id', 'title': 'ID'}, + {'data': 'nama', 'title': 'Nama'}, + {'data': 'role', 'title': 'Role'}, + {'data': 'dinas', 'title': 'Dinas'}, + {'title': 'Action'} + ], + 'columnDefs': [{ + 'targets': -1, + 'data': null, + 'defaultContent': ` + <div class="col-sm-3"> + <div class="table-actions" data-toggle="modal" data-target="#modal-detail"> + <i class="fa fa-info-circle fa-2x" id="detail" data-toggle="tooltip modal" title="Details"></i> + </div> + </div> + <div class="col-sm-3"> + <div class="table-actions" data-toggle="modal" data-target="#modal-edit"> + <i class="fa fa-edit fa-2x" id="edit" data-toggle="tooltip" title="Edit"></i> + </div> + </div> + <div class="col-sm-3"> + <i class="fa fa-trash fa-2x" id="delete" data-toggle="tooltip" title="Delete"></i> + </div> + ` + }] + }) - $('#user-table tbody').on('click', 'i', function() { - var data = table.row($(this).parents('tr')).data(); - $(function() { - $('#user_id').val(data['id']); - $('#name').val(data['nama']); - $('#email').val(data['email']); - $('#username').val(data['username']); - $('#password').val(data['password']); - $('#dinas').val(data['dinas']); - }) - }); -}); + $('#user-table tbody').on('click', '#edit', function() { + var index = table.row($(this).parents('tr')).index() + console.log(index) + vm.passedUserData = vm.userData[index] + }) -export default { - name: 'DaftarUser' + $('#user-table tbody').on('click', '#detail', function() { + var index = table.row($(this).parents('tr')).index() + console.log(index) + vm.passedUserData = vm.userData[index] + }) + }) + }, + watch: { + userData: function () { + var table = $('#user-table').DataTable() + table.rows.add(this.userData).draw() + console.log(this.userData) + } + }, + components: { + 'va-daftar-user-edit': VADaftarUserEdit, + 'va-daftar-user-detail': VADaftarUserDetail + } } </script> <style> .table-actions { - cursor: pointer; + cursor: pointer } </style>