feat: compare limit 9, format-aware import placeholder, help links

- Raise compare limit from 8 to 9 (server + client, toast on overflow)
- Make import textarea placeholder match selected format (CSV/JSON/YAML/auto)
- Add GuideHelp links to admin create/edit user dialogs and tool import dialog
This commit is contained in:
opencode
2026-08-05 07:40:47 +02:00
parent e66a332270
commit e164d51574
82 changed files with 9381 additions and 7 deletions
@@ -7,6 +7,7 @@ import { Textarea } from "@/components/ui/textarea";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { Label } from "@/components/ui/label";
import { GuideHelp } from "@/components/guide-help";
import { Upload, FileUp, CheckCircle2, AlertCircle } from "lucide-react";
type Format = "auto" | "csv" | "json" | "yaml";
@@ -62,14 +63,24 @@ export function ToolImportDialog({
const canSubmit = data.trim().length > 0 && !importTools.isPending;
const placeholder =
format === "csv"
? t("adminTools.importTextareaPlaceholderCsv")
: format === "json"
? t("adminTools.importTextareaPlaceholderJson")
: format === "yaml"
? t("adminTools.importTextareaPlaceholderYaml")
: t("adminTools.importTextareaPlaceholderAuto");
return (
<Dialog open={open} onOpenChange={handleClose}>
<DialogContent className="sm:max-w-2xl">
<DialogHeader>
<DialogHeader className="flex flex-row items-center justify-between gap-2">
<DialogTitle className="flex items-center gap-2">
<Upload className="w-4 h-4" />
{t("adminTools.importTitle")}
</DialogTitle>
<GuideHelp guide="administration" label={t("adminTools.importTitle")} />
</DialogHeader>
<div className="space-y-4 py-2">
@@ -131,7 +142,7 @@ export function ToolImportDialog({
<Textarea
value={data}
onChange={(e) => setData(e.target.value)}
placeholder={t("adminTools.importTextareaPlaceholder")}
placeholder={placeholder}
className="min-h-[220px] font-mono text-sm"
data-testid="input-tool-import-data"
/>