Untitled
unknown
plain_text
2 years ago
2.9 kB
6
Indexable
<!DOCTYPE html>
<html>
<head>
<title>To-Do List</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="sidebar">
<button id="assignTaskBtn">Assign Task</button>
<button id="showDoneTasksBtn">Show Done Tasks</button>
<input type="text" id="searchInput" placeholder="Search by assigned person">
</div>
<ul id="taskList"></ul>
<script src="script.js"></script>
</body>
</html>
.sidebar {
width: 200px;
background-color: #f1f1f1;
padding: 10px;
}
button {
display: block;
margin-bottom: 10px;
}
#searchInput {
width: 100%;
padding: 5px;
margin-bottom: 10px;
}
#taskList {
list-style-type: none;
padding: 0;
}
li {
margin-bottom: 5px;
}
.taskDescription {
font-weight: bold;
}
.deleteButton {
margin-left: 10px;
}
const assignTaskBtn = document.getElementById('assignTaskBtn');
const showDoneTasksBtn = document.getElementById('showDoneTasksBtn');
const searchInput = document.getElementById('searchInput');
const taskList = document.getElementById('taskList');
assignTaskBtn.addEventListener('click', assignTask);
showDoneTasksBtn.addEventListener('click', showDoneTasks);
searchInput.addEventListener('keyup', searchTasks);
let tasks = [];
function assignTask() {
const taskDescription = prompt('Enter task description:');
const assignedPerson = prompt('Assign task to:');
if (taskDescription && assignedPerson) {
tasks.push({ description: taskDescription, assignedTo: assignedPerson, done: false });
displayTasks();
}
}
function showDoneTasks() {
const doneTasks = tasks.filter(task => task.done);
displayTasks(doneTasks);
}
function searchTasks() {
const searchTerm = searchInput.value.toLowerCase();
const filteredTasks = tasks.filter(task => task.assignedTo.toLowerCase().includes(searchTerm));
displayTasks(filteredTasks);
}
function toggleTaskDone(index) {
tasks[index].done = !tasks[index].done;
displayTasks();
}
function deleteTask(index) {
tasks.splice(index, 1);
displayTasks();
}
function displayTasks(filteredTasks = tasks) {
taskList.innerHTML = '';
filteredTasks.forEach((task, index) => {
const li = document.createElement('li');
const description = document.createElement('span');
const assignedTo = document.createElement('span');
const editButton = document.createElement('button');
const deleteButton = document.createElement('button');
description.textContent = task.description;
assignedTo.textContent = `[Assigned to: ${task.assignedTo}]`;
editButton.textContent = 'Edit';
deleteButton.textContent = 'Delete';
if (task.done) {
li.style.textDecoration = 'line-through';
}
deleteButton.addEventListener('click', () => deleteTask(index));
li.appendChild(description);
li.appendChild(assignedTo);
li.appendChild(editButton);
li.appendChild(deleteButton);
taskList.appendChild(li);
});
}
Editor is loading...