Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions BUS_CRUD Local Storage/Busdata.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Day-6 Que-2</title>
<link rel="stylesheet" href="busstyles.css">
<link href="https://fonts.googleapis.com/css2?family=Lora:ital,wght@1,500&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Oxygen&display=swap" rel="stylesheet">
</head>
<body>
<div class="modal" onclick="hideModal(event)">
<div class="modalchild">
<div class="form">
<form onsubmit="updateBus(event)">
<input type="text" required placeholder="Name" id="upname" />
<input type="text" required placeholder="Source" id="upsrc" />
<input type="text" required placeholder="Desination" id="updest" />
<input type="number" required placeholder="Number" id="upnumber" />
<input type="text" required placeholder="Passenger Capacity" id="uppasscap" />
<button type="submit">Update Bus</button>
</form>
</div>
</div>
</div>

<div class="data">
<h1>Bus Details</h1>

<div class="form">
<form onsubmit="addBus(event)"><h2>Add Bus :-</h2>
<input type="text" required placeholder="Name" id="name" />
<input type="text" required placeholder="Source" id="source" />
<input type="text" required placeholder="Desination" id="destination" />
<input type="number" required placeholder="Number" id="number" />
<input type="text" required placeholder="Passenger Capacity" id="passcap" />
<button type="submit">Add Bus</button>
</form>
</div>

<h3>
<div class="form">
<h2>Find your Bus :-</h2>
Source :<input
type="text"
placeholder="Enter Source"
id="searchSource"
onkeyup="searchBySource()"
/>

Destination :<input
type="text"
placeholder="Enter Destination"
id="searchDestination"
onkeyup="searchByDestination()"
/>
</div>
</h3>
<table border="1" class="table" cellspacing="0">
<thead>
<tr>
<th>Sr no</th>
<th>Name</th>
<th>Source</th>
<th>Destination</th>
<th>Number</th>
<th>Passenger Capacity</th>
<th>Actions</th>
</tr>
</thead>
<tbody class="tdata" id="tdata"></tbody>
</table>
</div>

<script src="busdata.js"></script>

</body>
</html>
158 changes: 158 additions & 0 deletions BUS_CRUD Local Storage/busdata.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
window.onload = function () {
let initialbuses = [

];

if (localStorage.getItem("currentbuses") == null) {
localStorage.setItem("currentbuses", JSON.stringify(initialbuses));
}
};

function display(busarray = undefined) {
let tabledata = "";
let allbuses;
if (busarray == undefined) {
allbuses = JSON.parse(localStorage.getItem("currentbuses"));
} else {
allbuses = busarray;
}

allbuses.forEach(function (bus, index) {
let currentrow = `<tr>
<td>${index + 1}</td>
<td>${bus.name}</td>
<td>${bus.source}</td>
<td>${bus.destination}</td>
<td>${bus.number}</td>
<td>${bus.passcap}</td>
<td>
<button onclick='deleteBus(${index})'>delete</button>
<button onclick='showModal(${index})'>update</button>
</td>
</tr>`;

tabledata += currentrow;
});

document.getElementsByClassName("tdata")[0].innerHTML = tabledata;

}

display();

function addBus(e) {
e.preventDefault();
let newBus = {};
let name = document.getElementById("name").value;
let source = document.getElementById("source").value;
let destination= document.getElementById("destination").value;
let number = document.getElementById("number").value;
let passenger_capacity = document.getElementById("passcap").value;
newBus.name = name;
newBus.number = Number(number);
newBus.destination = destination;
newBus.source = source;
newBus.passcap=passenger_capacity;


let allbuses = JSON.parse(localStorage.getItem("currentbuses"));
allbuses.push(newBus);
localStorage.setItem("currentbuses", JSON.stringify(allbuses));

display();

document.getElementById("name").value = "";
document.getElementById("source").value = "";
document.getElementById("destination").value = "";
document.getElementById("number").value = "";
document.getElementById("passcap").value = "";
}

function searchBySource() {
let searchValue = document.getElementById("searchSource").value;
let searchvalue = document.getElementById("searchDestination").value;
let allbuses = JSON.parse(localStorage.getItem("currentbuses"));
let newdata = allbuses.filter(function (bus) {
return (
bus.source.toUpperCase().indexOf(searchValue.toUpperCase()) != -1 && bus.destination.toUpperCase().indexOf(searchvalue.toUpperCase()) != -1
);
});

display(newdata);
}

function searchByDestination() {
let searchValue = document.getElementById("searchDestination").value;
let searchvalue = document.getElementById("searchSource").value;
let allbuses = JSON.parse(localStorage.getItem("currentbuses"));
let newdata = allbuses.filter(function (bus) {
return (
bus.destination.toUpperCase().indexOf(searchValue.toUpperCase()) != -1 && bus.source.toUpperCase().indexOf(searchvalue.toUpperCase()) != -1
);
});

display(newdata);
}



let updateIndex;

function copyBus(index) {
let allbuses = JSON.parse(localStorage.getItem("currentbuses"));
updateIndex = index;console.log(updateIndex);
let currentBus = allbuses[index];

document.getElementById("upname").value = currentBus.name;
document.getElementById("upsrc").value = currentBus.source;
document.getElementById("updest").value = currentBus.destination;
document.getElementById("upnumber").value = currentBus.number;
document.getElementById("uppasscap").value = currentBus.passcap;

}

function updateBus(e) {
e.preventDefault();
let allbuses = JSON.parse(localStorage.getItem("currentbuses"));
let currentBus = allbuses[updateIndex];
let name = document.getElementById("upname").value;
let source = document.getElementById("upsrc").value;
let destination= document.getElementById("updest").value;
let number = document.getElementById("upnumber").value;
let passenger_capacity = document.getElementById("uppasscap").value;
currentBus.name = name;
currentBus.number = Number(number);
currentBus.destination = destination;
currentBus.source = source;
currentBus.passcap=passenger_capacity;

localStorage.setItem("currentbuses", JSON.stringify(allbuses));
display(allbuses);


let modal = document.getElementsByClassName("modal")[0];
modal.style.display = "none";
}

function deleteBus(index) {
let allbuses = JSON.parse(localStorage.getItem("currentbuses"));
allbuses.splice(index, 1);
localStorage.setItem("currentbuses", JSON.stringify(allbuses));
display();
}



function showModal(index) {
let modal = document.getElementsByClassName("modal")[0];
modal.style.display = "block";

copyBus(index);
}

function hideModal(event) {
if (event.target.className == "modal") {
let modal = document.getElementsByClassName("modal")[0];
modal.style.display = "none";
}
}
58 changes: 58 additions & 0 deletions BUS_CRUD Local Storage/busstyles.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
* {
margin: 0px;
padding: 0px;

}
body{font-family:Lora;}

.data {
height: 600px;
width: 80%;
background-color: lightgray;
margin-left: 10%;
margin-top: 50px;
padding: 20px;
display: inline-block;
}

.table {
width: 100%;
margin-top: 20px;
font-family: Oxygen;
}
th,
td {
height: 40px;
text-align: center;
padding: 5px;
}

.form {
margin-top: 20px;
}
input {
height: 40px;
text-indent: 20px;
}

button {
padding: 10px;
}

.modal {
width: 100%;
height: 100vh;
background-color: rgba(0, 0, 0, 0.5);
position: fixed;
display: none;
}

.modalchild {
height: 200px;
width: 70%;
background-color: white;
margin-left: 15%;
margin-top: 100px;
display: inline-block;
padding: 30px;
}