Suche: Kalenderdatum leserlich, Keywords fuer alle Dev-Tools, gbit/s und mehr
This commit is contained in:
@@ -1430,6 +1430,16 @@ function ChangelogModal({ user, toast, onClose, onRead }) {
|
||||
</div>
|
||||
);
|
||||
}
|
||||
function formatIcalDate(dt) {
|
||||
if (!dt) return '';
|
||||
const clean = dt.replace('Z','');
|
||||
const date = clean.slice(0,8);
|
||||
if (date.length < 8) return dt;
|
||||
const d = date.slice(6,8), m = date.slice(4,6), y = date.slice(0,4);
|
||||
const tm = clean.match(/T(\d{2})(\d{2})/);
|
||||
return tm ? `${d}.${m}.${y}, ${tm[1]}:${tm[2]} Uhr` : `${d}.${m}.${y}`;
|
||||
}
|
||||
|
||||
function SearchResultItem({ item, idx, activeIdx, onNavigate, onHover }) {
|
||||
const isActive = idx === activeIdx;
|
||||
let icon = '❓', primary = '', secondary = '';
|
||||
@@ -1453,7 +1463,7 @@ function SearchResultItem({ item, idx, activeIdx, onNavigate, onHover }) {
|
||||
if (item.type==='file_folder') { icon='📁'; primary=item.name; secondary='Datei-Ordner'; }
|
||||
if (item.type==='push') { icon='🔔'; primary=item.message; secondary=`Push · ${(item.scheduled_at||'').slice(0,16)}`; }
|
||||
if (item.type==='calendar_feed') { icon='📅'; primary=item.name; secondary='Kalender-Abo'; }
|
||||
if (item.type==='calendar_event') { icon='📆'; primary=item.summary; secondary=`${item.feed_name||'Kalender'}${item.start_dt?' · '+item.start_dt.slice(0,10):''}`; }
|
||||
if (item.type==='calendar_event') { icon='📆'; primary=item.summary; secondary=`${item.feed_name||'Kalender'}${item.start_dt?' · '+formatIcalDate(item.start_dt):''}`; }
|
||||
if (item.type==='qr') { icon='◻'; primary=item.label||item.url; secondary=`QR-Code · ${item.url}`; }
|
||||
return (
|
||||
<div onClick={()=>onNavigate(item)} onMouseEnter={()=>onHover(idx)}
|
||||
@@ -1474,142 +1484,91 @@ function SearchResultItem({ item, idx, activeIdx, onNavigate, onHover }) {
|
||||
}
|
||||
|
||||
// ── Globale Suche ─────────────────────────────────────────────────────────────
|
||||
// Statischer Such-Index – wirklich vollständig
|
||||
// Statischer Such-Index – mit Keywords für umfassende Suche
|
||||
const SEARCH_TOOL_INDEX = [
|
||||
// ── Haupt-Tools ──────────────────────────────────────────────────────────
|
||||
{type:'tool',label:'Dashboard',icon:'🏠',sub:'',id:'dashboard'},
|
||||
{type:'tool',label:'Bestellungen',icon:'📦',sub:'3D-Druck',id:'bestellungen'},
|
||||
{type:'tool',label:'Kalkulator3D',icon:'🖨',sub:'3D-Druck',id:'kalkulator3d'},
|
||||
{type:'tool',label:'3D-Archiv',icon:'🖨',sub:'3D-Druck',id:'kalkulator3d'},
|
||||
{type:'tool',label:'Dateien',icon:'📁',sub:'Werkzeuge',id:'dateien'},
|
||||
{type:'tool',label:'Datei-Manager',icon:'📁',sub:'Werkzeuge',id:'dateien'},
|
||||
{type:'tool',label:'Nachrichten',icon:'💬',sub:'Werkzeuge',id:'nachrichten'},
|
||||
{type:'tool',label:'Chat',icon:'💬',sub:'Werkzeuge',id:'nachrichten'},
|
||||
{type:'tool',label:'Linkliste',icon:'🔗',sub:'Werkzeuge',id:'linkliste'},
|
||||
{type:'tool',label:'Code-Schnipsel',icon:'📄',sub:'Werkzeuge',id:'codeschnipsel'},
|
||||
{type:'tool',label:'Snippets',icon:'📄',sub:'Werkzeuge',id:'codeschnipsel'},
|
||||
{type:'tool',label:'CAD-Skizzen',icon:'📐',sub:'Werkzeuge',id:'skizze'},
|
||||
{type:'tool',label:'Sketchpad',icon:'📐',sub:'Werkzeuge',id:'skizze'},
|
||||
{type:'tool',label:'Dev-Tools',icon:'🔧',sub:'Werkzeuge',id:'devtools'},
|
||||
// ── Dashboard-Widgets ────────────────────────────────────────────────────
|
||||
{type:'tool',label:'Schnellzugriff',icon:'⚡',sub:'Dashboard',id:'dashboard'},
|
||||
{type:'tool',label:'Kalender',icon:'📅',sub:'Dashboard',id:'dashboard'},
|
||||
{type:'tool',label:'iCal',icon:'📅',sub:'Dashboard',id:'dashboard'},
|
||||
{type:'tool',label:'ToDo',icon:'✅',sub:'Dashboard',id:'dashboard'},
|
||||
{type:'tool',label:'Notizen',icon:'📝',sub:'Dashboard',id:'dashboard'},
|
||||
{type:'tool',label:'Push-Erinnerungen',icon:'🔔',sub:'Dashboard',id:'dashboard'},
|
||||
{type:'tool',label:'Roadmap',icon:'🗺',sub:'Dashboard',id:'dashboard'},
|
||||
{type:'tool',label:'Wünsche',icon:'⭐',sub:'Dashboard',id:'dashboard'},
|
||||
{type:'tool',label:'Board',icon:'📋',sub:'Dashboard',id:'dashboard'},
|
||||
{type:'tool',label:'Changelog',icon:'📋',sub:'Dashboard',id:'dashboard'},
|
||||
// ── Einstellungen – Profil ────────────────────────────────────────────────
|
||||
{type:'settings',label:'Profil',icon:'👤',sub:'Einstellungen',section:'profil'},
|
||||
{type:'settings',label:'Avatar',icon:'🖼',sub:'Einstellungen → Profil',section:'profil'},
|
||||
{type:'settings',label:'Passwort ändern',icon:'🔑',sub:'Einstellungen → Profil',section:'profil'},
|
||||
{type:'settings',label:'Benutzername ändern',icon:'✏️',sub:'Einstellungen → Profil',section:'profil'},
|
||||
{type:'settings',label:'Pushover',icon:'🔔',sub:'Einstellungen → Profil',section:'profil'},
|
||||
{type:'settings',label:'Push-Benachrichtigungen',icon:'🔔',sub:'Einstellungen → Profil',section:'profil'},
|
||||
{type:'settings',label:'Account löschen',icon:'⚠️',sub:'Einstellungen → Profil',section:'profil'},
|
||||
// ── Einstellungen – Sicherheit ────────────────────────────────────────────
|
||||
{type:'settings',label:'Sicherheit',icon:'🔒',sub:'Einstellungen',section:'sicherheit'},
|
||||
{type:'settings',label:'Login-Schutz',icon:'🔒',sub:'Einstellungen → Sicherheit',section:'sicherheit'},
|
||||
{type:'settings',label:'Account sperren',icon:'🔒',sub:'Einstellungen → Sicherheit',section:'sicherheit'},
|
||||
{type:'settings',label:'Login-Versuche',icon:'🔒',sub:'Einstellungen → Sicherheit',section:'sicherheit'},
|
||||
// ── Einstellungen – Dashboard ─────────────────────────────────────────────
|
||||
{type:'settings',label:'Dashboard-Einstellungen',icon:'🏠',sub:'Einstellungen',section:'dashboard'},
|
||||
{type:'settings',label:'Schnellzugriff verwalten',icon:'⚡',sub:'Einstellungen → Dashboard',section:'dashboard'},
|
||||
{type:'settings',label:'Kalender hinzufügen',icon:'📅',sub:'Einstellungen → Dashboard',section:'dashboard'},
|
||||
{type:'settings',label:'iCal Abo',icon:'📅',sub:'Einstellungen → Dashboard',section:'dashboard'},
|
||||
// ── Einstellungen – Admin ─────────────────────────────────────────────────
|
||||
{type:'settings',label:'Benutzer verwalten',icon:'👥',sub:'Einstellungen (Admin)',section:'benutzer'},
|
||||
{type:'settings',label:'Neuen Benutzer anlegen',icon:'➕',sub:'Einstellungen (Admin)',section:'benutzer'},
|
||||
{type:'settings',label:'Datei-Manager Limits',icon:'📁',sub:'Einstellungen (Admin)',section:'benutzer'},
|
||||
{type:'settings',label:'Gesperrte Konten',icon:'🔒',sub:'Einstellungen (Admin)',section:'benutzer'},
|
||||
{type:'settings',label:'Backup',icon:'💾',sub:'Einstellungen (Admin)',section:'backup'},
|
||||
{type:'settings',label:'Datenbank sichern',icon:'💾',sub:'Einstellungen (Admin)',section:'backup'},
|
||||
{type:'settings',label:'Datenbank wiederherstellen',icon:'♻️',sub:'Einstellungen (Admin)',section:'backup'},
|
||||
// ── Dev-Tools – Crontab ───────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Crontab',icon:'⏱',sub:'Dev-Tools',tool:'cron'},
|
||||
{type:'devtool',label:'Crontab erklären',icon:'⏱',sub:'Crontab',tool:'cron'},
|
||||
{type:'devtool',label:'Crontab erstellen',icon:'⏱',sub:'Crontab',tool:'cron'},
|
||||
{type:'devtool',label:'Cronjob',icon:'⏱',sub:'Crontab',tool:'cron'},
|
||||
{type:'devtool',label:'Schedule',icon:'⏱',sub:'Crontab',tool:'cron'},
|
||||
// ── Dev-Tools – Elektro ───────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Elektro-Rechner',icon:'⚡',sub:'Dev-Tools',tool:'elektro'},
|
||||
{type:'devtool',label:'Ohmsches Gesetz',icon:'⚡',sub:'Elektro',tool:'elektro'},
|
||||
{type:'devtool',label:'Spannung Strom Widerstand',icon:'⚡',sub:'Elektro',tool:'elektro'},
|
||||
{type:'devtool',label:'Leistung Watt',icon:'⚡',sub:'Elektro',tool:'elektro'},
|
||||
{type:'devtool',label:'Stromkosten berechnen',icon:'⚡',sub:'Elektro',tool:'elektro'},
|
||||
{type:'devtool',label:'Widerstände Serie Parallel',icon:'⚡',sub:'Elektro',tool:'elektro'},
|
||||
{type:'devtool',label:'Wirkungsgrad',icon:'⚡',sub:'Elektro',tool:'elektro'},
|
||||
{type:'devtool',label:'kWh Verbrauch',icon:'⚡',sub:'Elektro',tool:'elektro'},
|
||||
// ── Dev-Tools – JSON ──────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'JSON Viewer',icon:'{}',sub:'Dev-Tools',tool:'json'},
|
||||
{type:'devtool',label:'JSON Builder',icon:'{}',sub:'Dev-Tools',tool:'json'},
|
||||
{type:'devtool',label:'JSON formatieren',icon:'{}',sub:'JSON',tool:'json'},
|
||||
{type:'devtool',label:'XML konvertieren',icon:'{}',sub:'JSON',tool:'json'},
|
||||
{type:'devtool',label:'JSON zu XML',icon:'{}',sub:'JSON',tool:'json'},
|
||||
// ── Dev-Tools – Regex ─────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Regex Builder',icon:'🔍',sub:'Dev-Tools',tool:'regex'},
|
||||
{type:'devtool',label:'Regex erklären',icon:'🔍',sub:'Regex',tool:'regex'},
|
||||
{type:'devtool',label:'Regulärer Ausdruck',icon:'🔍',sub:'Regex',tool:'regex'},
|
||||
{type:'devtool',label:'E-Mail Regex',icon:'🔍',sub:'Regex',tool:'regex'},
|
||||
{type:'devtool',label:'PLZ Regex',icon:'🔍',sub:'Regex',tool:'regex'},
|
||||
{type:'devtool',label:'URL Regex',icon:'🔍',sub:'Regex',tool:'regex'},
|
||||
// ── Dev-Tools – Text Diff ─────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Text Diff',icon:'±',sub:'Dev-Tools',tool:'diff'},
|
||||
{type:'devtool',label:'Texte vergleichen',icon:'±',sub:'Text Diff',tool:'diff'},
|
||||
{type:'devtool',label:'Unterschiede finden',icon:'±',sub:'Text Diff',tool:'diff'},
|
||||
// ── Dev-Tools – Netzwerk ──────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Netzwerk-Rechner',icon:'🌐',sub:'Dev-Tools',tool:'netzwerk'},
|
||||
{type:'devtool',label:'IP Adresse',icon:'🌐',sub:'Netzwerk',tool:'netzwerk'},
|
||||
{type:'devtool',label:'Subnetz Maske',icon:'🌐',sub:'Netzwerk',tool:'netzwerk'},
|
||||
{type:'devtool',label:'CIDR Tabelle',icon:'🌐',sub:'Netzwerk',tool:'netzwerk'},
|
||||
{type:'devtool',label:'Mbit/s MB/s Umrechner',icon:'🌐',sub:'Netzwerk',tool:'netzwerk'},
|
||||
{type:'devtool',label:'Downloadzeit berechnen',icon:'🌐',sub:'Netzwerk',tool:'netzwerk'},
|
||||
{type:'devtool',label:'Ping IPv4',icon:'🌐',sub:'Netzwerk',tool:'netzwerk'},
|
||||
// ── Dev-Tools – Datetime ──────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Datetime Rechner',icon:'📅',sub:'Dev-Tools',tool:'datetime'},
|
||||
{type:'devtool',label:'Unix Timestamp',icon:'📅',sub:'Datetime',tool:'datetime'},
|
||||
{type:'devtool',label:'Moseszeit Umrechner',icon:'📅',sub:'Datetime',tool:'datetime'},
|
||||
{type:'devtool',label:'Geburtstagsrechner',icon:'🎂',sub:'Datetime',tool:'datetime'},
|
||||
{type:'devtool',label:'Zeitdifferenz',icon:'📅',sub:'Datetime',tool:'datetime'},
|
||||
{type:'devtool',label:'Datum umrechnen',icon:'📅',sub:'Datetime',tool:'datetime'},
|
||||
{type:'devtool',label:'Kalenderwoche',icon:'📅',sub:'Datetime',tool:'datetime'},
|
||||
// ── Dev-Tools – Farben ────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Farb-Rechner',icon:'🎨',sub:'Dev-Tools',tool:'farben'},
|
||||
{type:'devtool',label:'HEX RGB HSL',icon:'🎨',sub:'Farben',tool:'farben'},
|
||||
{type:'devtool',label:'CMYK Farbkonverter',icon:'🎨',sub:'Farben',tool:'farben'},
|
||||
{type:'devtool',label:'Color Picker',icon:'🎨',sub:'Farben',tool:'farben'},
|
||||
{type:'devtool',label:'WCAG Kontrast',icon:'🎨',sub:'Farben',tool:'farben'},
|
||||
{type:'devtool',label:'Farbcode',icon:'🎨',sub:'Farben',tool:'farben'},
|
||||
// ── Dev-Tools – Key-Gen ───────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Key-Generator',icon:'🔐',sub:'Dev-Tools',tool:'keygen'},
|
||||
{type:'devtool',label:'Laravel APP_KEY',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'JWT Secret HS256',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'JWT Secret HS512',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'AES-256 Key',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'AES-128 Key',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'Generic Secret',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'Passwort Generator',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'UUID v4',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'NanoID',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'DB-Passwort Docker',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'Hex Token',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'Base64 Token',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'Base64url',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'NEXTAUTH_SECRET',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'MYSQL_ROOT_PASSWORD',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'POSTGRES_PASSWORD',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'SESSION_SECRET',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'Webhook Signing Secret',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'VAPID Key',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'OAuth Client Secret',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
{type:'devtool',label:'API Key generieren',icon:'🔐',sub:'Key-Gen',tool:'keygen'},
|
||||
// ── Dev-Tools – QR-Code ───────────────────────────────────────────────────
|
||||
{type:'devtool',label:'QR-Code Generator',icon:'◻',sub:'Dev-Tools',tool:'qrcode'},
|
||||
{type:'devtool',label:'QR-Code erstellen',icon:'◻',sub:'QR-Code',tool:'qrcode'},
|
||||
{type:'devtool',label:'QR-Code herunterladen',icon:'◻',sub:'QR-Code',tool:'qrcode'},
|
||||
{type:'tool',label:'Bestellungen',icon:'📦',sub:'3D-Druck',id:'bestellungen',keywords:['order','auftrag','3d druck']},
|
||||
{type:'tool',label:'Kalkulator3D',icon:'🖨',sub:'3D-Druck',id:'kalkulator3d',keywords:['kalkulator','rechner','3d archiv','archiv','berechnen','filament','druckkosten']},
|
||||
{type:'tool',label:'3D-Archiv',icon:'🖨',sub:'3D-Druck',id:'kalkulator3d',keywords:['archiv','druck']},
|
||||
{type:'tool',label:'Dateien',icon:'📁',sub:'Werkzeuge',id:'dateien',keywords:['datei','file','upload','dokument','ordner','speicher']},
|
||||
{type:'tool',label:'Nachrichten',icon:'💬',sub:'Werkzeuge',id:'nachrichten',keywords:['chat','nachricht','message','kommunikation','e2e','verschlüsselt']},
|
||||
{type:'tool',label:'Linkliste',icon:'🔗',sub:'Werkzeuge',id:'linkliste',keywords:['link','url','lesezeichen','bookmark','webseite']},
|
||||
{type:'tool',label:'Code-Schnipsel',icon:'📄',sub:'Werkzeuge',id:'codeschnipsel',keywords:['code','snippet','skript','programmierung','source']},
|
||||
{type:'tool',label:'CAD-Skizzen',icon:'📐',sub:'Werkzeuge',id:'skizze',keywords:['cad','skizze','zeichnung','sketch']},
|
||||
{type:'tool',label:'Dev-Tools',icon:'🔧',sub:'Werkzeuge',id:'devtools',keywords:['entwickler','developer','tools','werkzeuge']},
|
||||
// ── Dashboard-Widgets ──────────────────────────────────────────────────
|
||||
{type:'tool',label:'Schnellzugriff',icon:'⚡',sub:'Dashboard',id:'dashboard',keywords:['quick','links','favoriten','shortcuts']},
|
||||
{type:'tool',label:'Kalender',icon:'📅',sub:'Dashboard',id:'dashboard',keywords:['kalender','termine','events','ical','abo']},
|
||||
{type:'tool',label:'ToDo',icon:'✅',sub:'Dashboard',id:'dashboard',keywords:['todo','aufgabe','task','erledigt','checkliste']},
|
||||
{type:'tool',label:'Notizen',icon:'📝',sub:'Dashboard',id:'dashboard',keywords:['notiz','note','memo','text']},
|
||||
{type:'tool',label:'Push-Erinnerungen',icon:'🔔',sub:'Dashboard',id:'dashboard',keywords:['push','erinnerung','benachrichtigung','reminder','alarm']},
|
||||
{type:'tool',label:'Board / Roadmap',icon:'🗺',sub:'Dashboard',id:'dashboard',keywords:['roadmap','wünsche','board','ideen','planung','feature']},
|
||||
{type:'tool',label:'Changelog',icon:'📋',sub:'Dashboard',id:'dashboard',keywords:['changelog','versionen','updates','änderungen']},
|
||||
// ── Einstellungen ────────────────────────────────────────────────────────
|
||||
{type:'settings',label:'Profil',icon:'👤',sub:'Einstellungen',section:'profil',keywords:['avatar','benutzername','username','account','konto']},
|
||||
{type:'settings',label:'Passwort ändern',icon:'🔑',sub:'Einstellungen → Profil',section:'profil',keywords:['passwort','password','sicherheit','ändern']},
|
||||
{type:'settings',label:'Benutzername ändern',icon:'✏️',sub:'Einstellungen → Profil',section:'profil',keywords:['benutzername','username','name']},
|
||||
{type:'settings',label:'Pushover',icon:'🔔',sub:'Einstellungen → Profil',section:'profil',keywords:['pushover','push','api key','token','benachrichtigung','notification']},
|
||||
{type:'settings',label:'Account löschen',icon:'⚠️',sub:'Einstellungen → Profil',section:'profil',keywords:['löschen','delete','entfernen']},
|
||||
{type:'settings',label:'Sicherheit',icon:'🔒',sub:'Einstellungen',section:'sicherheit',keywords:['login','sperrung','schutz','lockout','versuche']},
|
||||
{type:'settings',label:'Login-Schutz',icon:'🔒',sub:'Einstellungen → Sicherheit',section:'sicherheit',keywords:['login schutz','lockout','sperrung','fehlversuche']},
|
||||
{type:'settings',label:'Dashboard-Einstellungen',icon:'🏠',sub:'Einstellungen',section:'dashboard',keywords:['schnellzugriff','kalender','ical','widgets']},
|
||||
{type:'settings',label:'iCal Kalender hinzufügen',icon:'📅',sub:'Einstellungen → Dashboard',section:'dashboard',keywords:['ical','kalender','abo','feed','url']},
|
||||
{type:'settings',label:'Benutzer verwalten',icon:'👥',sub:'Einstellungen (Admin)',section:'benutzer',keywords:['user','benutzer','admin','anlegen','erstellen','löschen']},
|
||||
{type:'settings',label:'Datei-Limits',icon:'📁',sub:'Einstellungen (Admin)',section:'benutzer',keywords:['datei limit','speicher','quota','upload limit']},
|
||||
{type:'settings',label:'Backup',icon:'💾',sub:'Einstellungen (Admin)',section:'backup',keywords:['backup','sicherung','wiederherstellen','export','import','datenbank']},
|
||||
// ── Crontab ─────────────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Crontab',icon:'⏱',sub:'Dev-Tools',tool:'cron',keywords:['cron','cronjob','schedule','zeitplan','scheduler','interval','task','job','automatisch','wiederkehrend']},
|
||||
{type:'devtool',label:'Crontab erklären',icon:'⏱',sub:'Crontab',tool:'cron',keywords:['erklären','explain','verstehen','bedeutung','syntax','auslesen']},
|
||||
{type:'devtool',label:'Crontab erstellen',icon:'⏱',sub:'Crontab',tool:'cron',keywords:['erstellen','generator','bauen','konfigurieren','jede minute','täglich','wöchentlich']},
|
||||
// ── Elektro ─────────────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Elektro-Rechner',icon:'⚡',sub:'Dev-Tools',tool:'elektro',keywords:['elektro','elektrizität','elektronik','schaltkreis','physik']},
|
||||
{type:'devtool',label:'Ohmsches Gesetz U=R·I',icon:'⚡',sub:'Elektro',tool:'elektro',keywords:['ohm','ohmsches gesetz','spannung','strom','widerstand','volt','ampere','resistance','voltage','current','u=ri','u=r*i']},
|
||||
{type:'devtool',label:'Leistung P=U·I',icon:'⚡',sub:'Elektro',tool:'elektro',keywords:['leistung','watt','kilowatt','power','p=ui','p=u*i','energieverbrauch','verbrauch']},
|
||||
{type:'devtool',label:'Stromkosten berechnen',icon:'⚡',sub:'Elektro',tool:'elektro',keywords:['stromkosten','kosten','preis','kwh','kilowattstunde','jahreskosten','monatlich','preisrechner']},
|
||||
{type:'devtool',label:'Widerstände Serie & Parallel',icon:'⚡',sub:'Elektro',tool:'elektro',keywords:['widerstand','serie','parallel','reihenschaltung','parallelschaltung','gesamtwiderstand']},
|
||||
{type:'devtool',label:'Wirkungsgrad',icon:'⚡',sub:'Elektro',tool:'elektro',keywords:['wirkungsgrad','effizienz','efficiency','verluste','nutzleistung','eta']},
|
||||
// ── JSON ──────────────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'JSON Viewer / Builder',icon:'{}',sub:'Dev-Tools',tool:'json',keywords:['json','javascript object','daten','struktur','objekt','array','xml','konvertieren','formatieren','prettify','minify','validieren']},
|
||||
// ── Regex ─────────────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Regex Builder',icon:'🔍',sub:'Dev-Tools',tool:'regex',keywords:['regex','regexp','regulärer ausdruck','pattern','muster','match','suchen','validierung','e-mail regex','plz regex','telefon regex','url regex','ip regex','datum regex','zahlen regex']},
|
||||
// ── Text Diff ────────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Text Diff',icon:'±',sub:'Dev-Tools',tool:'diff',keywords:['diff','vergleich','unterschied','unterschiede','änderungen','delta','merge','texte vergleichen','versions vergleich']},
|
||||
// ── Netzwerk ────────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Netzwerk-Rechner',icon:'🌐',sub:'Dev-Tools',tool:'netzwerk',keywords:['netzwerk','network','internet','lan','wan','router']},
|
||||
{type:'devtool',label:'Geschwindigkeit: Mbit/s ↔ MB/s',icon:'🌐',sub:'Netzwerk',tool:'netzwerk',keywords:['geschwindigkeit','speed','mbit','gbit','megabit','gigabit','mb/s','gb/s','mbit/s','gbit/s','megabyte','gigabyte','bandbreite','bandwidth','download','upload','transfer','übertragung','internetgeschwindigkeit','downloadzeit','dauer']},
|
||||
{type:'devtool',label:'IP / Subnetz Rechner',icon:'🌐',sub:'Netzwerk',tool:'netzwerk',keywords:['ip','ipv4','ipv6','subnet','subnetz','subnetzmaske','netzmaske','gateway','cidr','broadcast','netzadresse','hostbereich','slash notation']},
|
||||
{type:'devtool',label:'CIDR Tabelle',icon:'🌐',sub:'Netzwerk',tool:'netzwerk',keywords:['cidr','prefix','klasse a','klasse b','klasse c','hosts','adressen','/24','/16','/8']},
|
||||
// ── Datetime ─────────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Datetime / Zeitrechner',icon:'📅',sub:'Dev-Tools',tool:'datetime',keywords:['datum','zeit','time','date','rechner','kalender']},
|
||||
{type:'devtool',label:'Unix Timestamp ↔ Datum',icon:'📅',sub:'Datetime',tool:'datetime',keywords:['unix','timestamp','epoch','sekunden','millisekunden','umrechnen','konvertieren','unixzeit']},
|
||||
{type:'devtool',label:'Moseszeit Umrechner',icon:'📅',sub:'Datetime',tool:'datetime',keywords:['moses','moseszeit','moses time','proprietär','spezial']},
|
||||
{type:'devtool',label:'Geburtstagsrechner',icon:'🎂',sub:'Datetime',tool:'datetime',keywords:['geburtstag','alter','geburtsdatum','jahre','monate','tage','birthday','age','wie alt']},
|
||||
{type:'devtool',label:'Zeitdifferenz berechnen',icon:'📅',sub:'Datetime',tool:'datetime',keywords:['zeitdifferenz','differenz','abstand','dauer','zeitraum','zwischen','tage berechnen','stunden berechnen']},
|
||||
{type:'devtool',label:'Datum / Kalenderwoche',icon:'📅',sub:'Datetime',tool:'datetime',keywords:['kalenderwoche','kw','wochentag','weekday','woche']},
|
||||
// ── Farben ──────────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Farb-Rechner',icon:'🎨',sub:'Dev-Tools',tool:'farben',keywords:['farbe','color','colour','design','palette']},
|
||||
{type:'devtool',label:'HEX ↔ RGB ↔ HSL ↔ CMYK',icon:'🎨',sub:'Farben',tool:'farben',keywords:['hex','rgb','hsl','hsv','cmyk','oklch','rgba','hsla','farbraum','konvertieren','farbwert','farbcode','#ffffff','css farbe']},
|
||||
{type:'devtool',label:'Color Picker',icon:'🎨',sub:'Farben',tool:'farben',keywords:['color picker','farbwähler','farbauswahl','pipette','picker']},
|
||||
{type:'devtool',label:'WCAG Kontrast',icon:'🎨',sub:'Farben',tool:'farben',keywords:['wcag','kontrast','accessibility','barrierefrei','contrast ratio','lesbarkeit','aa','aaa']},
|
||||
// ── Key-Gen ─────────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'Key-Generator',icon:'🔐',sub:'Dev-Tools',tool:'keygen',keywords:['key','schlüssel','geheim','secret','generator','passwort','zufällig','sicher','random']},
|
||||
{type:'devtool',label:'Laravel APP_KEY',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['laravel','app_key','php','framework','base64:']},
|
||||
{type:'devtool',label:'JWT Secret HS256/HS512',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['jwt','json web token','hs256','hs512','bearer','auth token','authentication']},
|
||||
{type:'devtool',label:'AES-256 / AES-128 Key',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['aes','aes256','aes128','verschlüsselung','encryption','symmetrisch','cipher']},
|
||||
{type:'devtool',label:'UUID v4',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['uuid','uid','guid','identifier','eindeutig','unique id']},
|
||||
{type:'devtool',label:'NanoID',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['nanoid','nano','kurz','compact','id']},
|
||||
{type:'devtool',label:'Passwort Generator',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['passwort','password','sicher','stark','zufällig','sonderzeichen']},
|
||||
{type:'devtool',label:'Docker / DB Passwort',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['docker','mysql','postgres','mariadb','db passwort','datenbank passwort','compose']},
|
||||
{type:'devtool',label:'Hex / Base64 Token',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['hex','base64','base64url','token','random bytes','crypto']},
|
||||
{type:'devtool',label:'NEXTAUTH_SECRET',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['nextauth','next auth','nextjs','next.js','auth.js']},
|
||||
{type:'devtool',label:'VAPID Key',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['vapid','web push','push notification','service worker']},
|
||||
{type:'devtool',label:'OAuth / Webhook Secret',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['oauth','webhook','signing secret','hmac','client secret']},
|
||||
{type:'devtool',label:'Session Secret',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['session','express session','cookie secret','session_secret']},
|
||||
{type:'devtool',label:'MYSQL / POSTGRES Passwort',icon:'🔐',sub:'Key-Gen',tool:'keygen',keywords:['mysql','mysql_root_password','postgres','postgresql','postgres_password','mariadb']},
|
||||
// ── QR-Code ────────────────────────────────────────────────────────
|
||||
{type:'devtool',label:'QR-Code Generator',icon:'◻',sub:'Dev-Tools',tool:'qrcode',keywords:['qr','qr code','qrcode','barcode','scan','scannen','link teilen','url teilen']},
|
||||
];
|
||||
|
||||
function GlobalSearch({ setActive, setDevToolsNav, mobile }) {
|
||||
@@ -1629,8 +1588,9 @@ function GlobalSearch({ setActive, setDevToolsNav, mobile }) {
|
||||
return SEARCH_TOOL_INDEX.filter(t =>
|
||||
t.label.toLowerCase().includes(lq) ||
|
||||
t.sub.toLowerCase().includes(lq) ||
|
||||
(t.tool||t.id||'').toLowerCase().includes(lq)
|
||||
).slice(0, 6);
|
||||
(t.tool||t.id||'').toLowerCase().includes(lq) ||
|
||||
(t.keywords||[]).some(k => k.toLowerCase().includes(lq))
|
||||
).slice(0, 8);
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
Reference in New Issue
Block a user