Refactor dropdown menus: enhance action items with icons and improve visual hierarchy for better user experience

This commit is contained in:
Ross
2025-11-17 12:20:46 +00:00
parent 292f81ad74
commit feb5a85af2
2 changed files with 93 additions and 14 deletions
@@ -37,15 +37,55 @@
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="questionActions" role="button" data-bs-toggle="dropdown" aria-expanded="false">Actions</a>
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-dark" aria-labelledby="questionActions">
<li><a class="dropdown-item" href="{% url 'anatomy:anatomy_question_update' question.id %}">Edit</a></li>
<li><a class="dropdown-item" href="{% url 'anatomy:question_clone' question.id %}">Clone</a></li>
<li><a class="dropdown-item" href="{% url 'anatomy:question_delete' pk=question.pk %}">Delete</a></li>
<li><a class="dropdown-item" href="{% url 'anatomy:question_answer_update' pk=question.pk %}">Edit Answers</a></li>
<li><a class="dropdown-item" href="#" onclick="return window.create_popup_window('{% url 'feedback_create' question_type='anatomy' pk=question.pk %}')">Add Note</a></li>
<li>
<a class="dropdown-item text-primary" href="{% url 'anatomy:question_detail' question.id %}">
<i class="bi bi-eye me-2"></i> View
</a>
</li>
<li>
<a class="dropdown-item text-primary" href="{% url 'anatomy:anatomy_question_update' question.id %}">
<i class="bi bi-pencil-square me-2"></i> Edit
</a>
</li>
<li>
<a class="dropdown-item text-white" href="{% url 'anatomy:question_answer_update' pk=question.pk %}">
<i class="bi bi-list-check me-2"></i> Edit Answers
</a>
</li>
<li>
<a class="dropdown-item text-white" href="{% url 'anatomy:question_clone' question.id %}">
<i class="bi bi-files me-2"></i> Clone
</a>
</li>
<li>
<a class="dropdown-item text-info" href="#" onclick="return window.create_popup_window('{% url 'feedback_create' question_type='anatomy' pk=question.pk %}')">
<i class="bi bi-chat-left-text me-2"></i> Add Note
</a>
</li>
<li><hr class="dropdown-divider"></li>
<li>
<a class="dropdown-item text-danger" href="{% url 'anatomy:question_delete' pk=question.pk %}">
<i class="bi bi-trash me-2"></i> Delete
</a>
</li>
{% if request.user.is_superuser %}
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="{% url 'admin:anatomy_anatomyquestion_change' question.id %}">Admin Edit</a></li>
<li><a class="dropdown-item" href="{% url 'anatomy:question_user_answers' question.id %}">User answers</a></li>
<li>
<a class="dropdown-item text-warning" href="{% url 'admin:anatomy_anatomyquestion_change' question.id %}">
<i class="bi bi-tools me-2"></i> Admin Edit
</a>
</li>
<li>
<a class="dropdown-item text-muted" href="{% url 'anatomy:question_user_answers' question.id %}">
<i class="bi bi-people me-2"></i> User answers
</a>
</li>
{% endif %}
</ul>
</li>
@@ -3,16 +3,55 @@
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="examActions" role="button" data-bs-toggle="dropdown" aria-expanded="false">Actions</a>
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-dark" aria-labelledby="examActions">
<li><a class="dropdown-item" href="{% url exam.get_app_name|add:':question_create' %}">Add Question</a></li>
<li><a class="dropdown-item" href="{% url exam.get_app_name|add:':exam_update' exam.pk %}">Edit Exam</a></li>
<li><a class="dropdown-item" href="{% url exam.get_app_name|add:':exam_clone' exam.pk %}">Clone</a></li>
<li><a class="dropdown-item" href="{% url exam.get_app_name|add:':exam_authors' exam.id %}">Authors</a></li>
<li><a class="dropdown-item" href="{% url exam.get_app_name|add:':exam_markers' exam.id %}">Markers</a></li>
{# Primary action: add question #}
<li>
<a class="dropdown-item text-primary" href="{% url exam.get_app_name|add:':question_create' %}">
<i class="bi bi-plus-lg me-2"></i> Add Question
</a>
</li>
{# Edit / Clone group #}
<li>
<a class="dropdown-item text-white" href="{% url exam.get_app_name|add:':exam_update' exam.pk %}">
<i class="bi bi-pencil-square me-2"></i> Edit Exam
</a>
</li>
<li>
<a class="dropdown-item text-white" href="{% url exam.get_app_name|add:':exam_clone' exam.pk %}">
<i class="bi bi-files me-2"></i> Clone
</a>
</li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="{% url exam.get_app_name|add:':exam_delete' exam.id %}">Delete</a></li>
{# Authors / Markers (informational) #}
<li>
<a class="dropdown-item text-info" href="{% url exam.get_app_name|add:':exam_authors' exam.id %}">
<i class="bi bi-people me-2"></i> Authors
</a>
</li>
<li>
<a class="dropdown-item text-info" href="{% url exam.get_app_name|add:':exam_markers' exam.id %}">
<i class="bi bi-person-badge me-2"></i> Markers
</a>
</li>
<li><hr class="dropdown-divider"></li>
{# Delete is destructive - show in red #}
<li>
<a class="dropdown-item text-danger" href="{% url exam.get_app_name|add:':exam_delete' exam.id %}">
<i class="bi bi-trash me-2"></i> Delete
</a>
</li>
{% if request.user.is_superuser %}
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="{% url 'admin:anatomy_exam_change' exam.pk %}">Admin Edit</a></li>
<li>
<a class="dropdown-item text-warning" href="{% url 'admin:anatomy_exam_change' exam.pk %}">
<i class="bi bi-tools me-2"></i> Admin Edit
</a>
</li>
{% endif %}
</ul>
</li>