Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a3c114e4b5 | |||
| 170a2a53ab |
+1
-1
@@ -32,4 +32,4 @@ RUN if [ "$NUITKA_BUILD" = "1" ]; then \
|
|||||||
WORKDIR /app/Web
|
WORKDIR /app/Web
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
CMD ["gunicorn", "app:app", "--bind", "0.0.0.0:8000", "--workers", "3", "--timeout", "60", "--graceful-timeout", "20", "--max-requests", "1000", "--max-requests-jitter", "100", "--log-level", "info", "--access-logfile", "-", "--error-logfile", "-"]
|
CMD ["gunicorn", "app:app", "--bind", "0.0.0.0:8000", "--workers", "2", "--timeout", "30", "--graceful-timeout", "20", "--max-requests", "200", "--max-requests-jitter", "50", "--log-level", "info", "--access-logfile", "-", "--error-logfile", "-"]
|
||||||
|
|||||||
+1
-4
@@ -2967,14 +2967,12 @@ def get_items():
|
|||||||
offset = 0
|
offset = 0
|
||||||
limit = None
|
limit = None
|
||||||
|
|
||||||
# Light mode: minimal fields for faster initial load (auto-enabled on offset=0 unless explicitly disabled)
|
|
||||||
# Can be manually controlled via ?light_mode=true/false parameter
|
|
||||||
if light_mode_param in ('1', 'true', 'yes', 'on'):
|
if light_mode_param in ('1', 'true', 'yes', 'on'):
|
||||||
light_mode = True
|
light_mode = True
|
||||||
elif light_mode_param in ('0', 'false', 'no', 'off'):
|
elif light_mode_param in ('0', 'false', 'no', 'off'):
|
||||||
light_mode = False
|
light_mode = False
|
||||||
else:
|
else:
|
||||||
light_mode = (offset == 0) # Auto-enable light mode for first page
|
light_mode = (offset == 0)
|
||||||
|
|
||||||
client = MongoClient(MONGODB_HOST, MONGODB_PORT)
|
client = MongoClient(MONGODB_HOST, MONGODB_PORT)
|
||||||
db = client[MONGODB_DB]
|
db = client[MONGODB_DB]
|
||||||
@@ -2987,7 +2985,6 @@ def get_items():
|
|||||||
|
|
||||||
total_count = items_col.count_documents(base_query)
|
total_count = items_col.count_documents(base_query)
|
||||||
|
|
||||||
# Light projection: essentials only for fast initial render
|
|
||||||
light_projection = {
|
light_projection = {
|
||||||
'Name': 1,
|
'Name': 1,
|
||||||
'Code_4': 1,
|
'Code_4': 1,
|
||||||
|
|||||||
@@ -415,13 +415,17 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.bulk-delete-row {
|
.bulk-delete-row {
|
||||||
display: flex;
|
display: none;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bulk-delete-mode-active .bulk-delete-row {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
.bulk-delete-toggle {
|
.bulk-delete-toggle {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -3056,6 +3060,7 @@ document.addEventListener('DOMContentLoaded', ()=>{
|
|||||||
bulkDeleteDrawerOpen = Boolean(open);
|
bulkDeleteDrawerOpen = Boolean(open);
|
||||||
const drawer = document.getElementById('bulk-delete-drawer');
|
const drawer = document.getElementById('bulk-delete-drawer');
|
||||||
const toggle = document.getElementById('bulk-delete-drawer-toggle');
|
const toggle = document.getElementById('bulk-delete-drawer-toggle');
|
||||||
|
const itemsContainer = document.querySelector('#items-container');
|
||||||
if (drawer) {
|
if (drawer) {
|
||||||
drawer.classList.toggle('open', bulkDeleteDrawerOpen);
|
drawer.classList.toggle('open', bulkDeleteDrawerOpen);
|
||||||
drawer.setAttribute('aria-hidden', bulkDeleteDrawerOpen ? 'false' : 'true');
|
drawer.setAttribute('aria-hidden', bulkDeleteDrawerOpen ? 'false' : 'true');
|
||||||
@@ -3065,6 +3070,10 @@ document.addEventListener('DOMContentLoaded', ()=>{
|
|||||||
toggle.innerHTML = bulkDeleteDrawerOpen ? '<span class="drawer-icon">✕</span>' : '<span class="drawer-icon">⚙</span>';
|
toggle.innerHTML = bulkDeleteDrawerOpen ? '<span class="drawer-icon">✕</span>' : '<span class="drawer-icon">⚙</span>';
|
||||||
toggle.title = bulkDeleteDrawerOpen ? 'Massenlöschung schließen' : 'Massenlöschung öffnen';
|
toggle.title = bulkDeleteDrawerOpen ? 'Massenlöschung schließen' : 'Massenlöschung öffnen';
|
||||||
}
|
}
|
||||||
|
// Toggle checkbox visibility: show checkboxes only when bulk delete mode is active
|
||||||
|
if (itemsContainer) {
|
||||||
|
itemsContainer.classList.toggle('bulk-delete-mode-active', bulkDeleteDrawerOpen);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleBulkDeleteDrawer() {
|
function toggleBulkDeleteDrawer() {
|
||||||
|
|||||||
Reference in New Issue
Block a user