Commit 1b34bb1c authored by lydxa01's avatar lydxa01
Browse files

coba

No related merge requests found
Showing with 688 additions and 131 deletions
+688 -131
......@@ -4,8 +4,9 @@
namespace App\Http\Controllers\CRUD;
use Illuminate\Http\Request;
use App\Models\Alat;
use Illuminate\Support\Facades\Storage;
use App\Models\Alat;
use App\Models\JenisAlat;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Validator;
......@@ -26,6 +27,7 @@ class AlatController extends Controller
'kondisi' => 'required',
'id_jenis_alat' => 'required',
'id_ruang' => 'required',
'tahun' => 'required',
]);
if ($validator->fails()) {
......@@ -37,8 +39,16 @@ class AlatController extends Controller
'kondisi' => $request->kondisi,
'id_jenis_alat' => $request->id_jenis_alat,
'id_ruang' => $request->id_ruang,
'tahun' => $request->tahun,
]);
$jenisAlat = JenisAlat::find($request->id_jenis_alat);
if ($request->kondisi == 'rusak') {
if ($jenisAlat->stok > 0) {
$jenisAlat->decrement('stok');
}
}
return response()->json(['message' => 'Alat berhasil ditambahkan']);
}
......@@ -63,6 +73,7 @@ class AlatController extends Controller
'kondisi' => 'required',
'id_jenis_alat' => 'required',
'id_ruang' => 'required',
'tahun' => 'required',
]);
if ($validator->fails()) {
......@@ -74,10 +85,18 @@ class AlatController extends Controller
'kondisi' => $request->kondisi,
'id_jenis_alat' => $request->id_jenis_alat,
'id_ruang' => $request->id_ruang,
'tahun' => $request->tahun,
];
$db_alat->update($data);
$jenisAlat = JenisAlat::find($request->id_jenis_alat);
if ($request->kondisi == 'rusak') {
if ($jenisAlat->stok > 0) {
$jenisAlat->decrement('stok');
}
}
return response()->json(['message' => 'Alat berhasil diupdate'], 200);
}
......
......@@ -12,7 +12,10 @@
"@fortawesome/fontawesome-svg-core": "^6.5.2",
"@fortawesome/free-solid-svg-icons": "^6.5.2",
"@fortawesome/vue-fontawesome": "^3.0.8",
<<<<<<< HEAD
"@popperjs/core": "^2.11.8",
=======
>>>>>>> dhilaaaaa
"axios": "^1.6.8",
"bootstrap": "^5.3.3",
"bootstrap-vue": "^2.23.1",
......
......@@ -12,7 +12,10 @@
"@fortawesome/fontawesome-svg-core": "^6.5.2",
"@fortawesome/free-solid-svg-icons": "^6.5.2",
"@fortawesome/vue-fontawesome": "^3.0.8",
<<<<<<< HEAD
"@popperjs/core": "^2.11.8",
=======
>>>>>>> dhilaaaaa
"axios": "^1.6.8",
"bootstrap": "^5.3.3",
"bootstrap-vue": "^2.23.1",
......
......@@ -12,14 +12,25 @@
<title>APLAB</title>
<!-- Custom fonts for this template-->
<<<<<<< HEAD
<link href="assets/vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
=======
<link href="../../assets/vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
>>>>>>> dhilaaaaa
<link
href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i"
rel="stylesheet">
<!-- Custom styles for this template-->
<<<<<<< HEAD
<link href="assets/css/sb-admin-2.min.css" rel="stylesheet">
=======
<link href="../../assets/css/sb-admin-2.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
>>>>>>> dhilaaaaa
</head>
<body>
......@@ -28,6 +39,11 @@
</noscript>
<div id="app"></div>
<!-- Bootstrap core JavaScript-->
<<<<<<< HEAD
=======
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.bundle.min.js"></script>
>>>>>>> dhilaaaaa
<script src="../../assets/vendor/jquery/jquery.min.js"></script>
<script src="../../assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="../../assets/vendor/jquery-easing/jquery.easing.min.js"></script>
......
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
......@@ -14,6 +14,7 @@ export default {
</script>
<style>
@import '@fortawesome/fontawesome-free/css/all.css';
/* Gaya CSS untuk App.vue jika diperlukan */
@import "~bootstrap/dist/css/bootstrap.css";
</style>
......@@ -7,21 +7,33 @@
$(".sidebar").toggleClass("toggled");
if ($(".sidebar").hasClass("toggled")) {
$('.sidebar .collapse').collapse('hide');
<<<<<<< HEAD
}
=======
};
>>>>>>> dhilaaaaa
});
// Close any open menu accordions when window is resized below 768px
$(window).resize(function() {
if ($(window).width() < 768) {
$('.sidebar .collapse').collapse('hide');
<<<<<<< HEAD
}
=======
};
>>>>>>> dhilaaaaa
// Toggle the side navigation when window is resized below 480px
if ($(window).width() < 480 && !$(".sidebar").hasClass("toggled")) {
$("body").addClass("sidebar-toggled");
$(".sidebar").addClass("toggled");
$('.sidebar .collapse').collapse('hide');
<<<<<<< HEAD
}
=======
};
>>>>>>> dhilaaaaa
});
// Prevent the content wrapper from scrolling when the fixed side navigation hovered over
......
......@@ -17753,7 +17753,11 @@ var moment = createCommonjsModule(function (module, exports) {
} else {
duration.milliseconds = input;
}
<<<<<<< HEAD
} else if (match = aspNetRegex.exec(input)) {
=======
} else if (!!(match = aspNetRegex.exec(input))) {
>>>>>>> dhilaaaaa
sign = (match[1] === '-') ? -1 : 1;
duration = {
y : 0,
......@@ -17763,7 +17767,11 @@ var moment = createCommonjsModule(function (module, exports) {
s : toInt(match[SECOND]) * sign,
ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
};
<<<<<<< HEAD
} else if (match = isoRegex.exec(input)) {
=======
} else if (!!(match = isoRegex.exec(input))) {
>>>>>>> dhilaaaaa
sign = (match[1] === '-') ? -1 : 1;
duration = {
y : parseIso(match[2], sign),
......
......@@ -629,7 +629,11 @@
console.info(progressIndicator);
}
<<<<<<< HEAD
if (result) {
=======
if (!!result) {
>>>>>>> dhilaaaaa
// eslint-disable-line no-extra-boolean-cast
resolve(result);
} else {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
<template>
<div class="container mt-5">
<div class="row">
<div class="col-md-12">
<div class="card border-0 rounded shadow">
<div class="card-body">
<h4>TAMBAH ALAT</h4>
<hr />
<form @submit.prevent="store">
<div class="form-group">
<label for="no_inventaris" class="font-weight-bold">No Inventaris</label>
<input
type="text"
class="form-control"
v-model="post.no_inventaris"
placeholder="Masukkan nomor inventaris alat"
/>
<div v-if="validation.no_inventaris" class="mt-2 alert alert-danger">
{{ validation.no_inventaris[0] }}
</div>
</div>
<div class="form-group">
<label for="kondisi" class="font-weight-bold">Kondisi</label>
<input
type="text"
class="form-control"
v-model="post.kondisi"
placeholder="Masukkan kondisi alat"
/>
<div v-if="validation.kondisi" class="mt-2 alert alert-danger">
{{ validation.kondisi[0] }}
</div>
<div id="wrapper">
<SidebarAdmintes />
<div id="content-wrapper" class="service_section layout_padding">
<Navbar />
<div class="container mt-5">
<div class="row">
<div class="col-md-12">
<div class="card border-0 rounded shadow">
<div class="card-body">
<h4>TAMBAH ALAT</h4>
<hr />
<form @submit.prevent="store">
<div class="form-group">
<label for="no_inventaris" class="font-weight-bold">No Inventaris</label>
<input
type="text"
class="form-control"
v-model="post.no_inventaris"
placeholder="Masukkan nomor inventaris alat"
/>
<div v-if="validation.no_inventaris" class="mt-2 alert alert-danger">
{{ validation.no_inventaris[0] }}
</div>
</div>
<div class="form-group">
<label for="kondisi" class="font-weight-bold">Kondisi</label>
<div class="form-check">
<input
class="form-check-input"
type="radio"
name="kondisi"
id="bagus"
value="bagus"
v-model="post.kondisi"
/>
<label class="form-check-label" for="bagus">Bagus</label>
</div>
<div class="form-check">
<input
class="form-check-input"
type="radio"
name="kondisi"
id="rusak"
value="rusak"
v-model="post.kondisi"
/>
<label class="form-check-label" for="rusak">Rusak</label>
</div>
<div v-if="validation.kondisi" class="mt-2 alert alert-danger">
{{ validation.kondisi[0] }}
</div>
</div>
<div class="form-group">
<label for="id_jenis_alat" class="font-weight-bold">ID Jenis Alat</label>
<select class="form-control" v-model="post.id_jenis_alat">
<option v-for="jalat in jalat" :key="jalat.id_jenis_alat" :value="jalat.id_jenis_alat">{{ jalat.nama_alat }}</option>
</select>
<div v-if="validation.id_jenis_alat" class="mt-2 alert alert-danger">
{{ validation.id_jenis_alat[0] }}
</div>
</div>
<div class="form-group">
<label for="id_ruang" class="font-weight-bold">ID ruang</label>
<select class="form-control" v-model="post.id_ruang">
<option v-for="ruang in ruang" :key="ruang.id_ruang" :value="ruang.id_ruang">{{ ruang.nama_ruang }}</option>
</select>
<div v-if="validation.id_ruang" class="mt-2 alert alert-danger">
{{ validation.id_ruang[0] }}
</div>
</div>
<div class="form-group">
<label for="tahun" class="font-weight-bold">Tahun</label>
<input
type="number"
class="form-control"
v-model="post.tahun"
placeholder="Masukkan tahun alat"
/>
<div v-if="validation.tahun" class="mt-2 alert alert-danger">
{{ validation.tahun[0] }}
</div>
</div>
<button type="submit" class="btn btn-primary">SIMPAN</button>
<router-link :to="{ name: 'allAlat' }" class="btn btn-secondary"
>CANCEL</router-link
>
</form>
</div>
<div class="form-group">
<label for="id_jenis_alat" class="font-weight-bold">ID Jenis Alat</label>
<select class="form-control" v-model="post.id_jenis_alat">
<option v-for="jalat in jalat" :key="jalat.id_jenis_alat" :value="jalat.id_jenis_alat">{{ jalat.nama_alat }}</option>
</select>
<div v-if="validation.id_jenis_alat" class="mt-2 alert alert-danger">
{{ validation.id_jenis_alat[0] }}
</div>
</div>
<div class="form-group">
<label for="id_ruang" class="font-weight-bold">ID ruang</label>
<select class="form-control" v-model="post.id_ruang">
<option v-for="ruang in ruang" :key="ruang.id_ruang" :value="ruang.id_ruang">{{ ruang.nama_ruang }}</option>
</select>
<div v-if="validation.id_ruang" class="mt-2 alert alert-danger">
{{ validation.id_ruang[0] }}
</div>
</div>
<button type="submit" class="btn btn-primary">SIMPAN</button>
<router-link :to="{ name: 'allAlat' }" class="btn btn-secondary"
>CANCEL</router-link
>
</form>
</div>
</div>
</div>
</div>
</div>
<Footer />
</div>
</div>
</template>
<script>
import Footer from "../../includes/Footer.vue";
import SidebarAdmintes from "../../includes/SidebarAdmintes.vue";
import Navbar from "../../includes/navbar.vue";
import { reactive, ref, onMounted } from "vue";
import { useRouter } from "vue-router";
import axios from "axios";
export default {
components: {
Footer,
SidebarAdmintes,
Navbar,
},
setup() {
const post = reactive({
no_inventaris: "",
kondisi: "",
id_jenis_alat: "",
id_ruang: "",
tahun: "",
});
const jalat = ref([]);
......@@ -123,6 +170,7 @@ export default {
formData.append('kondisi', post.kondisi);
formData.append('id_jenis_alat', post.id_jenis_alat);
formData.append('id_ruang', post.id_ruang);
formData.append('tahun', post.tahun);
axios
.post('/api/alat/add_alat', formData, {
......@@ -154,4 +202,4 @@ export default {
body {
background: lightgray;
}
</style>
</style>
\ No newline at end of file
<template>
<div class="main-container">
<Sidebar />
<div class="content">
<section class="service_section layout_padding d-flex justify-content-center align-items-center">
<div class="container align-content-center">
<router-link to="/admin/add_alat" class="btn btn-success mb-3">
<div id="wrapper">
<SidebarAdmintes />
<div id="content-wrapper" class="service_section layout_padding">
<Navbar />
<div class="container-fluid">
<div class="button-container">
<router-link to="" class="btn btn-success mb-3">
Tambah Alat
</router-link>
<table class="table table-bordered table-hover">
<thead class="thead-dark">
<tr>
<th scope="col">No</th>
<th scope="col">No Inventaris</th>
<th scope="col">Kondisi</th>
<th scope="col">ID Jenis Alat</th>
<th scope="col">ID Ruang</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
<tr v-for="(alat, index) in ListAlat" :key="alat.id_alat">
<td>{{ index + 1 }}</td>
<td>{{ alat.no_inventaris }}</td>
<td>{{ alat.kondisi }}</td>
<td>{{ alat.id_jenis_alat }}</td>
<td>{{ alat.id_ruang }}</td>
<td>
<button @click="updateAlat(alat.id_alat)" class="btn btn-info">Update</button>
<button @click="deleteAlat(alat.id_alat)" class="btn btn-danger">Delete</button>
</td>
</tr>
</tbody>
</table>
<router-link to="" class="btn btn-success mb-3 btn-download">
Export
</router-link>
</div>
<div class="search-container mb-3">
<i class="fas fa-search search-icon"></i>
<input
v-model="searchQuery"
type="text"
placeholder="Search Alat..."
class="form-control search-input"
/>
</div>
</section>
<table class="table table-bordered table-hover">
<thead class="thead-dark">
<tr>
<th scope="col" @click="sortTable('id_alat')">
No
<span class="sort-icon">
<i :class="sortBy === 'id_alat' ? (sortDirection === 'asc' ? 'fas fa-sort-up' : 'fas fa-sort-down') : 'fas fa-sort'"></i>
</span>
</th>
<th scope="col" @click="sortTable('no_inventaris')">
No Inventaris
<span class="sort-icon">
<i :class="sortBy === 'no_inventaris' ? (sortDirection === 'asc' ? 'fas fa-sort-up' : 'fas fa-sort-down') : 'fas fa-sort'"></i>
</span>
</th>
<th scope="col" @click="sortTable('id_jenis_alat')">
ID Jenis Alat
<span class="sort-icon">
<i :class="sortBy === 'id_jenis_alat' ? (sortDirection === 'asc' ? 'fas fa-sort-up' : 'fas fa-sort-down') : 'fas fa-sort'"></i>
</span>
</th>
<!-- <th scope="col" @click="sortTable('merk_alat')">
Merk
<span class="sort-icon">
<i :class="sortBy === 'merk_alat' ? (sortDirection === 'asc' ? 'fas fa-sort-up' : 'fas fa-sort-down') : 'fas fa-sort'"></i>
</span>
</th> -->
<th scope="col" @click="sortTable('id_ruang')">
ID Ruang
<span class="sort-icon">
<i :class="sortBy === 'id_ruang' ? (sortDirection === 'asc' ? 'fas fa-sort-up' : 'fas fa-sort-down') : 'fas fa-sort'"></i>
</span>
</th>
<th scope="col" @click="sortTable('tahun')">
Tahun
<span class="sort-icon">
<i :class="sortBy === 'tahun' ? (sortDirection === 'asc' ? 'fas fa-sort-up' : 'fas fa-sort-down') : 'fas fa-sort'"></i>
</span>
</th>
<th scope="col" @click="sortTable('kondisi')">
Kondisi
<span class="sort-icon">
<i :class="sortBy === 'kondisi' ? (sortDirection === 'asc' ? 'fas fa-sort-up' : 'fas fa-sort-down') : 'fas fa-sort'"></i>
</span>
</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
<tr v-for="(alat, index) in sortedAlat" :key="alat.id_alat">
<td>{{ index + 1 }}</td>
<td>{{ alat.no_inventaris }}</td>
<td>{{ alat.id_jenis_alat }}</td>
<td>{{ alat.id_ruang }}</td>
<td>{{ alat.tahun }}</td>
<td>{{ alat.kondisi }}</td>
<td>
<button @click="updateAlat(alat.id_alat)" class="btn btn-info">Update</button>
<button @click="deleteAlat(alat.id_alat)" class="btn btn-danger">Delete</button>
</td>
</tr>
</tbody>
</table>
</div>
<Footer />
</div>
</div>
</template>
<script>
import Sidebar from '@/components/includes/SidebarAdmin.vue';
import Footer from "../../includes/Footer.vue";
import SidebarAdmintes from "../../includes/SidebarAdmintes.vue";
import Navbar from "../../includes/navbar.vue";
export default {
components: {
Sidebar
Footer,
SidebarAdmintes,
Navbar,
},
data() {
return {
ListAlat: [],
searchQuery: '',
sortBy: '',
sortDirection: 'asc',
};
},
mounted() {
......@@ -77,33 +137,68 @@ export default {
}
}
},
sortTable(column) {
if (this.sortBy === column) {
this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';
} else {
this.sortBy = column;
this.sortDirection = 'asc';
}
},
},
computed: {
sortedAlat() {
let sortedList = [...this.ListAlat];
if (this.sortBy) {
sortedList.sort((a, b) => {
let modifier = 1;
if (this.sortDirection === 'desc') modifier = -1;
if (a[this.sortBy] < b[this.sortBy]) return -1 * modifier;
if (a[this.sortBy] > b[this.sortBy]) return 1 * modifier;
return 0;
});
}
if (this.searchQuery) {
sortedList = sortedList.filter(alat =>
alat.no_inventaris.toLowerCase().includes(this.searchQuery.toLowerCase()) ||
alat.kondisi.toLowerCase().includes(this.searchQuery.toLowerCase()) ||
alat.id_jenis_alat.toString().includes(this.searchQuery.toLowerCase()) ||
alat.id_ruang.toString().includes(this.searchQuery.toLowerCase()) ||
alat.tahun.toString().includes(this.searchQuery.toLowerCase())
);
}
return sortedList;
},
},
};
</script>
<style scoped>
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');
body {
font-family: 'Roboto', sans-serif;
html, body, #wrapper, #content-wrapper, .service_section {
height: 100%;
margin: 0;
padding: 0;
background-color: #f8f9fa;
}
.main-container {
#content-wrapper {
display: flex;
flex-direction: column;
}
.content {
flex-grow: 1;
padding: 20px;
margin-left: 5px;
transition: margin-left 0.3s ease-in-out;
.container-fluid {
flex: 1;
display: flex;
flex-direction: column;
padding: 30px;
}
.container {
padding: 10px;
.button-container {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
}
.btn-success {
......@@ -120,10 +215,54 @@ body {
.table td {
text-align: center;
vertical-align: middle;
cursor: pointer;
}
.btn-info {
width: 80px;
margin-right: 5px;
}
.btn-info,
.btn-danger {
width: 80px;
margin-left: 5px;
}
.btn-download {
margin-left: auto;
}
.search-container {
position: relative;
display: flex;
align-items: center;
}
.search-icon {
position: absolute;
left: 10px;
font-size: 14px;
color: #aaa;
}
.search-input {
padding-left: 30px;
font-size: 14px;
height: 30px;
width: 200px;
}
.form-control {
width: 30%;
}
#content-wrapper {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.container-fluid {
flex: 1;
}
</style>
......@@ -3,6 +3,7 @@
<SidebarAdmintes />
<div id="content-wrapper" class="service_section layout_padding">
<Navbar />
<<<<<<< HEAD
<div class="container mt-5">
<div class="row">
<div class="col-md-12">
......@@ -10,6 +11,31 @@
<div class="card-body">
<h4>TAMBAH ALAT</h4>
<hr />
=======
<div class="container mt-5">
<div class="row">
<div class="col-md-12">
<div class="card border-0 rounded shadow">
<div class="card-body">
<h4>TAMBAH JENIS ALAT</h4>
<hr />
<form @submit.prevent="store">
<div class="form-group">
<label for="nama_alat" class="font-weight-bold">Nama Alat</label>
<input
type="text"
class="form-control"
v-model="post.nama_alat"
placeholder="Masukkan nama alat"
/>
<div v-if="validation.nama_alat" class="mt-2 alert alert-danger">
{{ validation.nama_alat[0] }}
</div>
</div>
>>>>>>> dhilaaaaa
<form @submit.prevent="store">
<div class="form-group">
......@@ -106,20 +132,34 @@
</div>
</div>
<Footer />
<<<<<<< HEAD
</div>
</template>
=======
</div>
</div>
</template>
>>>>>>> dhilaaaaa
<script>
import Footer from "../../../includes/Footer.vue";
import SidebarAdmintes from "../../../includes/SidebarAdmintes.vue";
import Navbar from "../../../includes/navbar.vue";
<<<<<<< HEAD
import { reactive, ref } from "vue";
=======
import { reactive, ref, onMounted } from "vue";
>>>>>>> dhilaaaaa
import { useRouter } from "vue-router";
import axios from "axios";
export default {
<<<<<<< HEAD
name: "AddJenis",
components: {
=======
components: {
>>>>>>> dhilaaaaa
Footer,
SidebarAdmintes,
Navbar,
......
......@@ -3,10 +3,28 @@
<SidebarAdmintes />
<div id="content-wrapper" class="service_section layout_padding">
<Navbar />
<<<<<<< HEAD
<div class="container">
<router-link to="/admin/add-jenis" class="btn btn-success mb-3">
Tambah Alat
</router-link>
=======
<div class="container-fluid">
<div class="container">
<router-link to="/admin/add_jenis_alat" class="btn btn-success mb-3">
Tambah Jenis Alat
</router-link>
<div class="search-container mb-3">
<i class="fas fa-search search-icon"></i>
<input
v-model="searchQuery"
type="text"
placeholder="Search Jenis Alat..."
class="form-control search-input"
/>
</div>
>>>>>>> dhilaaaaa
<table class="table table-bordered table-hover">
<thead class="thead-dark">
......@@ -46,6 +64,11 @@
</table>
</div>
</div>
<<<<<<< HEAD
=======
<Footer />
</div>
>>>>>>> dhilaaaaa
</div>
<Footer />
</template>
......@@ -55,8 +78,12 @@ import Footer from "../../../includes/Footer.vue";
import SidebarAdmintes from "../../../includes/SidebarAdmintes.vue";
import Navbar from "../../../includes/navbar.vue";
export default {
<<<<<<< HEAD
name: "AllJenis",
components: {
=======
components: {
>>>>>>> dhilaaaaa
Footer,
SidebarAdmintes,
Navbar,
......@@ -100,6 +127,7 @@ import Navbar from "../../../includes/navbar.vue";
</script>
<style scoped>
<<<<<<< HEAD
.product-image {
max-width: 100px;
max-height: 75px;
......@@ -131,4 +159,95 @@ import Navbar from "../../../includes/navbar.vue";
width: 80px;
}
</style>
\ No newline at end of file
=======
html, body, #wrapper, #content-wrapper, .service_section {
height: 100%;
margin: 0;
}
#content-wrapper {
display: flex;
flex-direction: column;
}
.container-fluid {
flex: 1;
display: flex;
flex-direction: column;
padding: 30px;
}
.button-container {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
}
.btn-success {
background-color: #28a745;
border-color: #28a745;
}
.btn-success:hover {
background-color: #218838;
border-color: #1e7e34;
}
.table th,
.table td {
text-align: center;
vertical-align: middle;
}
.btn-info {
width: 80px;
margin-right: 5px;
}
.btn-danger {
width: 80px;
margin-left: 5px;
}
.btn-download {
margin-left: auto;
}
.search-container {
position: relative;
display: flex;
align-items: center;
}
.search-icon {
position: absolute;
left: 10px;
font-size: 14px;
color: #aaa;
}
.search-input {
padding-left: 30px;
font-size: 14px;
height: 30px;
width: 200px;
}
.form-control {
width: 30%;
}
#content-wrapper {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.container-fluid {
flex: 1;
}
</style>
>>>>>>> dhilaaaaa
......@@ -105,6 +105,9 @@
</div>
</div>
</div>
</div>
<Footer />
</div>
</div>
</div>
<Footer />
......@@ -115,13 +118,21 @@
import Footer from "../../../includes/Footer.vue";
import SidebarAdmintes from "../../../includes/SidebarAdmintes.vue";
import Navbar from "../../../includes/navbar.vue";
<<<<<<< HEAD
import { reactive, ref } from "vue";
=======
import { reactive, ref, onMounted } from "vue";
>>>>>>> dhilaaaaa
import { useRouter, useRoute } from "vue-router";
import axios from "axios";
export default {
<<<<<<< HEAD
name: "EditJenis",
components: {
=======
components: {
>>>>>>> dhilaaaaa
Footer,
SidebarAdmintes,
Navbar,
......
<template>
<div id="wrapper">
<SidebarAdmintes />
<div id="content-wrapper" class="service_section layout_padding">
<Navbar />
<div class="container mt-5">
<div class="row">
<div class="col-md-12">
......@@ -32,14 +36,25 @@
</div>
</div>
</div>
<Footer />
</div>
</div>
</template>
<script>
import Footer from "../../../includes/Footer.vue";
import SidebarAdmintes from "../../../includes/SidebarAdmintes.vue";
import Navbar from "../../../includes/navbar.vue";
import { reactive, ref } from "vue";
import { useRouter } from "vue-router";
import axios from "axios";
export default {
components: {
Footer,
SidebarAdmintes,
Navbar,
},
setup() {
const post = reactive({
nama_merk: "",
......
<template>
<div>
<section class="service_section layout_padding d-flex justify-content-center align-items-center">
<div class="container align-content-center">
<router-link to="/admin/add_merk" class="btn btn-success mb-3">
Tambah Merk
</router-link>
<div id="wrapper">
<SidebarAdmintes />
<div id="content-wrapper" class="service_section layout_padding">
<Navbar />
<div class="container-fluid">
<div class="container">
<router-link to="/admin/add_merk" class="btn btn-success mb-3">
Tambah Merk
</router-link>
<div class="search-container mb-3">
<i class="fas fa-search search-icon"></i>
<input
v-model="searchQuery"
type="text"
placeholder="Search Merk..."
class="form-control search-input"
/>
</div>
<table class="table table-bordered table-hover">
<thead class="thead-dark">
......@@ -27,12 +40,22 @@
</table>
</div>
</section>
</div>
<Footer />
</div>
</div>
</template>
<script>
import Footer from "../../../includes/Footer.vue";
import SidebarAdmintes from "../../../includes/SidebarAdmintes.vue";
import Navbar from "../../../includes/navbar.vue";
export default {
components: {
Footer,
SidebarAdmintes,
Navbar,
},
data() {
return {
ListMerk: [],
......@@ -70,11 +93,30 @@ export default {
</script>
<style scoped>
html, body, #wrapper, #content-wrapper, .service_section {
height: 100%;
margin: 0;
}
.container {
#content-wrapper {
display: flex;
flex-direction: column;
}
.container-fluid {
flex: 1;
display: flex;
flex-direction: column;
padding: 30px;
}
.button-container {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
}
.btn-success {
background-color: #28a745;
border-color: #28a745;
......@@ -91,8 +133,52 @@ export default {
vertical-align: middle;
}
.btn-info,
.btn-info {
width: 80px;
margin-right: 5px;
}
.btn-danger {
width: 80px;
margin-left: 5px;
}
.btn-download {
margin-left: auto;
}
.search-container {
position: relative;
display: flex;
align-items: center;
}
.search-icon {
position: absolute;
left: 10px;
font-size: 14px;
color: #aaa;
}
.search-input {
padding-left: 30px;
font-size: 14px;
height: 30px;
width: 200px;
}
.form-control {
width: 30%;
}
#content-wrapper {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.container-fluid {
flex: 1;
}
</style>
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