diff --git a/app.py b/app.py index a0fcef0..31546c4 100644 --- a/app.py +++ b/app.py @@ -1970,7 +1970,14 @@ def _parse_propfind(xml_bytes, base_url, username, current_path): items.append({'name': name, 'path': rel, 'is_dir': is_dir, 'size': size, 'mtime': mtime, 'ext': ext if not is_dir else 'dir'}) - items.sort(key=lambda x: (0 if x['is_dir'] else 1, x['name'].lower())) + def _mtime_ts(m): + try: + from email.utils import parsedate_to_datetime + return parsedate_to_datetime(m).timestamp() + except Exception: + return 0 + + items.sort(key=lambda x: (0 if x['is_dir'] else 1, -_mtime_ts(x['mtime']))) return items @app.route('/api/nextcloud/browse') diff --git a/templates/base.html b/templates/base.html index 358d3aa..194681d 100644 --- a/templates/base.html +++ b/templates/base.html @@ -106,6 +106,34 @@ .stock-low { color: #f59e0b; } .stock-empty { color: #ef4444; } + /* ── Mobile offcanvas nav — mêmes styles que #sidebar nav ──────────── */ + #mobileSidebar nav { flex: 1; padding: .5rem 0; } + #mobileSidebar nav a { + display: flex; align-items: center; gap: .65rem; + padding: .6rem 1.25rem; color: #9ba3af; + text-decoration: none; font-size: .875rem; + transition: background .15s, color .15s; + white-space: nowrap; + } + #mobileSidebar nav a:hover, + #mobileSidebar nav a.active { background: #2e323d; color: #fff; } + #mobileSidebar nav a.active { border-left: 3px solid #ff6b35; } + #mobileSidebar nav a i { flex-shrink: 0; font-size: 1rem; width: 1.1rem; text-align: center; } + #mobileSidebar nav .nav-label { opacity: 1 !important; pointer-events: auto !important; } + #mobileSidebar nav .nav-section { + padding: .75rem 1.25rem .25rem; font-size: .7rem; + text-transform: uppercase; letter-spacing: .08em; color: #4b5563; + opacity: 1 !important; + } + #mobileSidebar .sidebar-user { + padding: .75rem 1.25rem; border-top: 1px solid #2e323d; + opacity: 1 !important; pointer-events: auto !important; + } + #mobileSidebar .sidebar-user div { font-size: .75rem; color: #9ba3af; } + #mobileSidebar .sidebar-user a { + font-size: .72rem; color: #6b7280; text-decoration: none; display: block; margin-top: .25rem; + } + /* ── Mobile responsive ───────────────────────────────────────────────── */ @media (max-width: 767.98px) { #sidebar { display: none !important; } diff --git a/templates/new_job.html b/templates/new_job.html index e959a3c..7514f2f 100644 --- a/templates/new_job.html +++ b/templates/new_job.html @@ -317,16 +317,22 @@