Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
Commit 0d568de7 authored by Deepak Khatri's avatar Deepak Khatri :dog:
Browse files

Add a big red button to list outstanding todo items on any page

parent 389755c2
Branches
Tags
No related merge requests found
<a role="button" data-bs-toggle="modal" data-bs-target="#todoModal" href="#" id="modalfortodoitems">
<button type="button" class="btn btn-danger">Outstanding todo items</button>
</a>
<div class="modal fade" id="todoModal" aria-labelledby="todoModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title m-0 text-dark" id="todoModalLabel">Outstanding todo items</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<ul class="list-group list-group-flush" id="todolist">
<!-- Auto generated for page -->
</ul>
</div>
</div>
</div>
</div>
<script>
document.body.appendChild(document.getElementById('todoModal'));
var modalfortodoitems = document.getElementById('modalfortodoitems');
var modalfortodoitemsparent = modalfortodoitems.parentNode;
var todoItems = document.getElementsByClassName('admonition-todo');
var todolist = document.getElementById('todolist')
if(todoItems.length == 0) {
modalfortodoitemsparent.remove();
} else {
for (var i = 0; i < todoItems.length; ++i) {
var todoItem = document.createElement('li');
var link = document.createElement('a');
link.textContent = todoItems[i].getElementsByTagName('p')[1].innerHTML;
link.href = '#' + todoItems[i].id;
link.addEventListener('click', function() {
// Use Bootstrap's modal method to hide the modal
const todoModal = document.getElementById('todoModal');
const modal = bootstrap.Modal.getInstance(todoModal);
modal.hide();
});
todoItem.appendChild(link);
todoItem.classList.add('list-group-item');
todolist.appendChild(todoItem);
}
}
</script>
\ No newline at end of file
......@@ -222,7 +222,7 @@ html_theme_options = {
"footer_end": ["last-updated"],
# "content_footer_items": ["last-updated"],
"secondary_sidebar_items": {
"**": ["page-toc", "edit-this-page", "sourcelink","pdf", "feedback", "forum", "license-terms", "message", "oshw"]
"**": ["todo", "page-toc", "edit-this-page", "sourcelink","pdf", "feedback", "forum", "license-terms", "message", "oshw"]
},
}
......
......@@ -20,7 +20,7 @@ snowballstemmer==2.2.0
Sphinx==7.2.6
sphinx-autobuild==2021.3.14
sphinx-copybutton==0.5.2
pydata-sphinx-theme==0.15.2
pydata-sphinx-theme==0.15.4
sphinx-serve==1.0.1
sphinx-tabs==3.4.4
sphinx_design==0.5.0
......
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