| ${_escAttr(u.name)} |
${_escAttr(u.email)} |
- |
+ |
${u.owned_farms_count ?? 0} |
${_fmtDate(u.created_at)} |
diff --git a/frontend/src/lib/router.js b/frontend/src/lib/router.js
index c08d9eb..e57db90 100644
--- a/frontend/src/lib/router.js
+++ b/frontend/src/lib/router.js
@@ -4,6 +4,8 @@
Hash-based SPA navigation, sidebar toggle, page title yönetimi.
============================================================ */
+import { getCurrentUser } from "./session.js";
+
export const pageTitles = {
dashboard: ['Genel Bakış', 'Tarlanın özeti'],
fields: ['Tarlalarım', 'Çiftliklerine bağlı tarlalar'],
@@ -20,6 +22,15 @@ export const pageTitles = {
auth: ['Hesabım', 'Profil ve şifre'],
};
+// Sistem rolleri (developer/overseer/admin) TÜM sistemi görür → çiftçi-odaklı
+// ("kendi tarlan") alt başlıklar yanıltıcı. Bu sayfalarda kapsam-doğru metin:
+const SYSTEM_SUBTITLES = {
+ dashboard: 'Sistem geneli özet',
+ fields: 'Tüm çiftlikler ve tarlalar',
+ sensors: 'Sistemdeki tüm sensörler',
+ irrigation: 'Tüm sulama kayıtları ve önerisi',
+};
+
/**
* Sayfa değiştirme fonksiyonu.
* @param {string} page - Sayfa adı
@@ -45,7 +56,9 @@ export function navigate(page, handlers, startHeroTipRotation) {
navItem.setAttribute('aria-current', 'page');
}
document.getElementById('pageTitle').textContent = pageTitles[page][0];
- document.getElementById('pageSubtitle').textContent = pageTitles[page][1];
+ const _u = getCurrentUser();
+ const _sysSub = _u && _u.role !== 'farmer' && SYSTEM_SUBTITLES[page];
+ document.getElementById('pageSubtitle').textContent = _sysSub || pageTitles[page][1];
// Sayfa her zaman TEPEDEN açılsın + a11y odağı (odak kaydırmasın → preventScroll).
window.scrollTo(0, 0);
const main = document.getElementById('main-content');
diff --git a/frontend/src/styles/base.css b/frontend/src/styles/base.css
index 485564f..7322b28 100644
--- a/frontend/src/styles/base.css
+++ b/frontend/src/styles/base.css
@@ -11,18 +11,21 @@ input, select { font-family: var(--font); }
/* Selection highlight */
::selection { background: rgba(16,185,129,.28); color: var(--text); }
-/* Global scrollbar */
+/* Global scrollbar — SADECE ::-webkit (Chrome/Safari kalıcı özel scrollbar).
+ scrollbar-color KULLANMA: modern Chrome onu görünce ::-webkit'i yok sayıp ince
+ standart (overlay) scrollbar'a geçiyor → scrollbar "kayboluyor".
+ Gece varsayılan = slate; gündüz (yeşil) override → theme-light.css. */
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
- background: rgba(16,185,129,.28);
+ background: rgba(100,116,139,.55);
border-radius: 6px;
border: 2px solid transparent;
background-clip: padding-box;
transition: background .2s ease;
}
*::-webkit-scrollbar-thumb:hover {
- background: rgba(16,185,129,.55);
+ background: rgba(148,163,184,.72);
background-clip: padding-box;
}
diff --git a/frontend/src/styles/theme-light.css b/frontend/src/styles/theme-light.css
index f9bd5a3..43f33f7 100644
--- a/frontend/src/styles/theme-light.css
+++ b/frontend/src/styles/theme-light.css
@@ -132,3 +132,7 @@
[data-theme="light"] .theme-toggle:hover .toggle-track {
box-shadow: inset 0 2px 6px rgba(15,23,42,.2), 0 0 0 1px rgba(96,165,250,.4);
}
+
+/* Light tema scrollbar — ORİJİNAL marka yeşili (açık zeminde mükemmeldi, korundu) */
+[data-theme="light"] *::-webkit-scrollbar-thumb { background: rgba(16,185,129,.28); }
+[data-theme="light"] *::-webkit-scrollbar-thumb:hover { background: rgba(16,185,129,.55); }
|