Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -351,6 +351,7 @@
|
||||
</aside>
|
||||
|
||||
<aside id="viewerSidebar" class="viewer-sidebar" aria-label="Viewer sidebar">
|
||||
<div id="viewer-sidebar-resize-handle" class="viewer-sidebar-resize-handle" title="Drag to resize sidebar" aria-hidden="true"></div>
|
||||
<div class="viewer-sidebar-header">
|
||||
<span class="fw-semibold">Viewer</span>
|
||||
<button type="button" class="btn btn-sm btn-outline-secondary" id="viewer-sidebar-close-btn">Close</button>
|
||||
@@ -545,6 +546,18 @@
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.viewer-sidebar-resize-handle {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 10px;
|
||||
height: 100%;
|
||||
cursor: ew-resize;
|
||||
z-index: 3;
|
||||
background: linear-gradient(to right, rgba(100,181,246,0.28), rgba(100,181,246,0));
|
||||
touch-action: none;
|
||||
}
|
||||
|
||||
.viewer-sidebar.open {
|
||||
transform: translateX(0);
|
||||
}
|
||||
@@ -990,6 +1003,7 @@
|
||||
var sidebarBody = document.getElementById('viewerSidebarBody');
|
||||
var sidebarBtn = document.getElementById('viewer-sidebar-btn');
|
||||
var sidebarCloseBtn = document.getElementById('viewer-sidebar-close-btn');
|
||||
var sidebarResizeHandle = document.getElementById('viewer-sidebar-resize-handle');
|
||||
var popoutBtn = document.getElementById('viewer-popout-btn');
|
||||
var mainViewerEl = document.getElementById('main_viewer');
|
||||
var rootStyle = document.documentElement.style;
|
||||
@@ -1031,6 +1045,41 @@
|
||||
sidebarResizeObserver.observe(sidebarEl);
|
||||
}
|
||||
|
||||
if (sidebarResizeHandle && sidebarEl) {
|
||||
var sidebarResizing = false;
|
||||
var sidebarStartX = 0;
|
||||
var sidebarStartWidth = 0;
|
||||
|
||||
var onSidebarPointerMove = function (event) {
|
||||
if (!sidebarResizing) return;
|
||||
var delta = sidebarStartX - event.clientX;
|
||||
var nextWidth = sidebarStartWidth + delta;
|
||||
applySidebarWidth(nextWidth);
|
||||
};
|
||||
|
||||
var stopSidebarResize = function () {
|
||||
if (!sidebarResizing) return;
|
||||
sidebarResizing = false;
|
||||
document.body.style.cursor = '';
|
||||
document.body.style.userSelect = '';
|
||||
var width = Math.round(sidebarEl.getBoundingClientRect().width);
|
||||
localStorage.setItem(SIDEBAR_W_KEY, width);
|
||||
};
|
||||
|
||||
sidebarResizeHandle.addEventListener('pointerdown', function (event) {
|
||||
event.preventDefault();
|
||||
sidebarResizing = true;
|
||||
sidebarStartX = event.clientX;
|
||||
sidebarStartWidth = sidebarEl.getBoundingClientRect().width;
|
||||
document.body.style.cursor = 'ew-resize';
|
||||
document.body.style.userSelect = 'none';
|
||||
});
|
||||
|
||||
window.addEventListener('pointermove', onSidebarPointerMove);
|
||||
window.addEventListener('pointerup', stopSidebarResize);
|
||||
window.addEventListener('pointercancel', stopSidebarResize);
|
||||
}
|
||||
|
||||
var persistHeight = function () {
|
||||
localStorage.setItem(HEIGHT_KEY, Math.round(container.getBoundingClientRect().height));
|
||||
};
|
||||
|
||||
@@ -7866,6 +7866,22 @@ def collection_case_view(request, pk, case_number=None, case_id=None):
|
||||
casedetail = CaseDetail.objects.get(case=case, collection=collection)
|
||||
|
||||
series_list = case.series.all().prefetch_related("images", "examination", "plane")
|
||||
ordered_series = list(getattr(case, "ordered_series", case.get_ordered_series()))
|
||||
for series in ordered_series:
|
||||
prefetched_images = getattr(series, "_prefetched_objects_cache", {}).get("images")
|
||||
if prefetched_images is not None:
|
||||
series.visible_image_count = len(prefetched_images)
|
||||
else:
|
||||
series.visible_image_count = series.images.filter(removed=False).count()
|
||||
|
||||
move_series_form = MoveSelectedSeriesForm(user=request.user, source_case=case)
|
||||
move_series_recent_cases = list(
|
||||
get_cases_available_to_user(request.user)
|
||||
.exclude(pk=case.pk)
|
||||
.filter(author=request.user)
|
||||
.order_by("-created_date")
|
||||
.prefetch_related("author", "condition", "presentation", "subspecialty")[:5]
|
||||
)
|
||||
|
||||
previous = collection.get_previous_case(casedetail.case)
|
||||
next = collection.get_next_case(casedetail.case)
|
||||
@@ -7881,12 +7897,17 @@ def collection_case_view(request, pk, case_number=None, case_id=None):
|
||||
"case": case,
|
||||
"casedetail": casedetail,
|
||||
"series_list": series_list,
|
||||
"ordered_series": ordered_series,
|
||||
"case_number": case_number,
|
||||
"previous": previous,
|
||||
"next": next,
|
||||
"can_edit": can_edit,
|
||||
"move_series_form": move_series_form,
|
||||
"move_series_recent_cases": move_series_recent_cases,
|
||||
"answer": answer,
|
||||
"cimar_sid": request.user.userprofile.cimar_sid,
|
||||
"site_queryset": Site.objects.all(),
|
||||
"subspecialty_queryset": Subspecialty.objects.all(),
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user