Backup-Oberflaeche im Settings-Tab

Der BackupService bekommt eine Bedienoberflaeche im neuen Unterreiter "Backup".

Aufbau als eigenes UserControl (UI/BackupPanel) statt direkt in frm_main.Designer.cs.
Diese Datei ist ueber 1250 Zeilen gewachsene Handarbeit; ein Fehler beim Bearbeiten
waere teuer. Eingehaengt wird das Panel mit vier Zeilen.

Drei Bereiche: Sicherung erstellen (Zielordner, Umgang mit Zugangsdaten, Umfang),
automatische Sicherung (Uhrzeit, Aufbewahrungszahl) und die Liste vorhandener
Sicherungen mit Wiederherstellen, Anzeigen und Loeschen. Die Liste liest das
Manifest jeder Datei und zeigt Instanz und ob Zugangsdaten enthalten sind;
unlesbare oder fremde Archive werden ausgegraut mitgezeigt, statt sie zu
verschweigen.

Zwei Entscheidungen praegen das Verhalten.

Die Passphrase wird nirgends gespeichert. Laege sie neben den Sicherungen, waere
die Verschluesselung wirkungslos. Sie muss deshalb bei jeder geschuetzten
Sicherung neu eingegeben und wiederholt werden, und vor dem Erstellen wird
ausdruecklich bestaetigt, dass sie notiert ist — ohne sie sind die Zugangsdaten
unwiederbringlich. Die Automatik sichert aus demselben Grund ohne Zugangsdaten.

Wiederhergestellt wird standardmaessig in einen NEUEN Ordner neben der Instanz,
nicht ueber die laufende. Diese haelt Chatverlaeufe im Speicher und die Datenbank
geoeffnet — ein Ueberschreiben im Betrieb wuerde teils sofort wieder ueberschrieben
und teils scheitern. Der Dialog benennt das.

Vor dem Schreiben laeuft immer ein Probelauf: Er prueft die Pruefsummen und zaehlt
die Konflikte, sodass ein beschaedigtes Archiv auffaellt und Ueberschreiben
bestaetigt wird, bevor etwas passiert.

BackupScheduler sichert taeglich zur eingestellten Uhrzeit und wendet die Rotation
an. Der Zeitpunkt wird bei jedem Durchlauf neu aus den Einstellungen gelesen,
damit eine Aenderung ohne Neustart greift.

Die Oberflaeche ist noch nicht optisch geprueft — die Dev-Instanz haelt einen
echten API-Key und wuerde beim Start Agenten ausfuehren.

385 Tests gruen (237 Core, 148 Tools).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-07-30 10:37:16 +02:00
co-authored by Claude Opus 4.8
parent b55512e734
commit b51cc29667
7 changed files with 1399 additions and 365 deletions
+85 -365
View File
@@ -52,6 +52,8 @@ namespace ClawdDotNet
label_openRouterStatus = new ToolStripStatusLabel();
toolStripStatusLabel1 = new ToolStripStatusLabel();
label_openRouterCredits = new ToolStripStatusLabel();
toolStripStatusLabel2 = new ToolStripStatusLabel();
label_openRouterCreditBalance = new ToolStripStatusLabel();
tabControl1 = new TabControl();
tabPage_Chat = new TabPage();
webView_chat = new Microsoft.Web.WebView2.WinForms.WebView2();
@@ -75,12 +77,6 @@ namespace ClawdDotNet
splitContainer2 = new SplitContainer();
splitContainer1 = new SplitContainer();
dgv_agentlist = new DataGridView();
col_AgentDisplayName = new DataGridViewTextBoxColumn();
col_AgentModel = new DataGridViewTextBoxColumn();
col_AgentToolCount = new DataGridViewTextBoxColumn();
col_AgentHasIdentity = new DataGridViewTextBoxColumn();
col_AgentHasSoul = new DataGridViewTextBoxColumn();
col_AgentStatus = new DataGridViewTextBoxColumn();
toolStrip_agentSettings = new ToolStrip();
btn_addAgent = new ToolStripButton();
btn_removeAgent = new ToolStripButton();
@@ -94,24 +90,11 @@ namespace ClawdDotNet
pg_agentsettings = new PropertyGrid();
splitContainer3 = new SplitContainer();
dgv_agentTools = new DataGridView();
col_ToolAssigned2 = new DataGridViewCheckBoxColumn();
col_ToolName2 = new DataGridViewTextBoxColumn();
col_ToolDescription2 = new DataGridViewTextBoxColumn();
pg_agentToolSettings = new PropertyGrid();
tabPage_Worker = new TabPage();
tabControl3 = new TabControl();
tabPage_jobs = new TabPage();
dgv_Jobs = new DataGridView();
col_JobType = new DataGridViewTextBoxColumn();
col_JobAgentName = new DataGridViewTextBoxColumn();
col_JobToolName = new DataGridViewTextBoxColumn();
col_JobCron = new DataGridViewTextBoxColumn();
col_JobTask = new DataGridViewTextBoxColumn();
col_JobNextRun = new DataGridViewTextBoxColumn();
col_JobLastRun = new DataGridViewTextBoxColumn();
col_JobLastStatus = new DataGridViewTextBoxColumn();
col_JobAutostart = new DataGridViewCheckBoxColumn();
col_JobStatus = new DataGridViewTextBoxColumn();
toolStrip_jobs = new ToolStrip();
btn_addJob = new ToolStripButton();
btn_editJob = new ToolStripButton();
@@ -120,32 +103,19 @@ namespace ClawdDotNet
btn_refreshJobs = new ToolStripButton();
tabPage_services = new TabPage();
dgv_services = new DataGridView();
col_SvcName = new DataGridViewTextBoxColumn();
col_SvcType = new DataGridViewTextBoxColumn();
col_SvcPort = new DataGridViewTextBoxColumn();
col_SvcStatus = new DataGridViewTextBoxColumn();
col_SvcStartedAt = new DataGridViewTextBoxColumn();
col_SvcDescription = new DataGridViewTextBoxColumn();
col_SvcBuiltIn = new DataGridViewCheckBoxColumn();
toolStrip_services = new ToolStrip();
btn_addService = new ToolStripButton();
btn_removeService = new ToolStripButton();
toolStripSeparator6 = new ToolStripSeparator();
btn_startService = new ToolStripButton();
btn_stopService = new ToolStripButton();
tabPage_jobHistory = new TabPage();
dgv_jobhistory = new DataGridView();
tabPage_Info = new TabPage();
label2 = new Label();
label_Softwareinfo = new Label();
tabPage_jobHistory = new TabPage();
dgv_jobhistory = new DataGridView();
col_HistJobName = new DataGridViewTextBoxColumn();
col_HistAgent = new DataGridViewTextBoxColumn();
col_HistTime = new DataGridViewTextBoxColumn();
col_HistDescription = new DataGridViewTextBoxColumn();
col_HistInfo = new DataGridViewTextBoxColumn();
col_HistStatus = new DataGridViewTextBoxColumn();
toolStripStatusLabel2 = new ToolStripStatusLabel();
label_openRouterCreditBalance = new ToolStripStatusLabel();
tabPage_backup = new TabPage();
backupPanel = new ClawdDotNet.UI.BackupPanel();
menuStrip1.SuspendLayout();
toolStrip1.SuspendLayout();
statusStrip1.SuspendLayout();
@@ -182,9 +152,9 @@ namespace ClawdDotNet
tabPage_services.SuspendLayout();
((System.ComponentModel.ISupportInitialize)dgv_services).BeginInit();
toolStrip_services.SuspendLayout();
tabPage_Info.SuspendLayout();
tabPage_jobHistory.SuspendLayout();
((System.ComponentModel.ISupportInitialize)dgv_jobhistory).BeginInit();
tabPage_Info.SuspendLayout();
SuspendLayout();
//
// menuStrip1
@@ -283,6 +253,18 @@ namespace ClawdDotNet
label_openRouterCredits.Size = new Size(97, 25);
label_openRouterCredits.Text = "Credits: ---";
//
// toolStripStatusLabel2
//
toolStripStatusLabel2.Name = "toolStripStatusLabel2";
toolStripStatusLabel2.Size = new Size(16, 25);
toolStripStatusLabel2.Text = "|";
//
// label_openRouterCreditBalance
//
label_openRouterCreditBalance.Name = "label_openRouterCreditBalance";
label_openRouterCreditBalance.Size = new Size(179, 25);
label_openRouterCreditBalance.Text = "toolStripStatusLabel3";
//
// tabControl1
//
tabControl1.Controls.Add(tabPage_Chat);
@@ -405,6 +387,7 @@ namespace ClawdDotNet
//
tabControl2.Controls.Add(tabPage_appsettings);
tabControl2.Controls.Add(tabPage_instancesettings);
tabControl2.Controls.Add(tabPage_backup);
tabControl2.Dock = DockStyle.Fill;
tabControl2.Location = new Point(3, 3);
tabControl2.Name = "tabControl2";
@@ -507,7 +490,6 @@ namespace ClawdDotNet
//
dgv_agentlist.AllowUserToAddRows = false;
dgv_agentlist.AllowUserToDeleteRows = false;
dgv_agentlist.AutoGenerateColumns = false;
dgv_agentlist.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dgv_agentlist.BackgroundColor = Color.FromArgb(45, 45, 45);
dataGridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft;
@@ -519,7 +501,6 @@ namespace ClawdDotNet
dataGridViewCellStyle1.WrapMode = DataGridViewTriState.True;
dgv_agentlist.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
dgv_agentlist.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgv_agentlist.Columns.AddRange(new DataGridViewColumn[] { col_AgentDisplayName, col_AgentModel, col_AgentToolCount, col_AgentHasIdentity, col_AgentHasSoul, col_AgentStatus });
dataGridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = Color.FromArgb(55, 55, 55);
dataGridViewCellStyle2.Font = new Font("Segoe UI", 9F);
@@ -539,55 +520,6 @@ namespace ClawdDotNet
dgv_agentlist.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgv_agentlist.Size = new Size(1519, 505);
dgv_agentlist.TabIndex = 0;
//
// col_AgentDisplayName
//
col_AgentDisplayName.DataPropertyName = "DisplayName";
col_AgentDisplayName.HeaderText = "Name";
col_AgentDisplayName.MinimumWidth = 8;
col_AgentDisplayName.Name = "col_AgentDisplayName";
col_AgentDisplayName.ReadOnly = true;
//
// col_AgentModel
//
col_AgentModel.DataPropertyName = "Model";
col_AgentModel.HeaderText = "Modell";
col_AgentModel.MinimumWidth = 8;
col_AgentModel.Name = "col_AgentModel";
col_AgentModel.ReadOnly = true;
//
// col_AgentToolCount
//
col_AgentToolCount.DataPropertyName = "ToolCount";
col_AgentToolCount.HeaderText = "Tools";
col_AgentToolCount.MinimumWidth = 8;
col_AgentToolCount.Name = "col_AgentToolCount";
col_AgentToolCount.ReadOnly = true;
//
// col_AgentHasIdentity
//
col_AgentHasIdentity.DataPropertyName = "HasIdentity";
col_AgentHasIdentity.HeaderText = "Identity";
col_AgentHasIdentity.MinimumWidth = 8;
col_AgentHasIdentity.Name = "col_AgentHasIdentity";
col_AgentHasIdentity.ReadOnly = true;
//
// col_AgentHasSoul
//
col_AgentHasSoul.DataPropertyName = "HasSoul";
col_AgentHasSoul.HeaderText = "Soul";
col_AgentHasSoul.MinimumWidth = 8;
col_AgentHasSoul.Name = "col_AgentHasSoul";
col_AgentHasSoul.ReadOnly = true;
//
// col_AgentStatus
//
col_AgentStatus.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
col_AgentStatus.DataPropertyName = "Status";
col_AgentStatus.HeaderText = "Status";
col_AgentStatus.MinimumWidth = 8;
col_AgentStatus.Name = "col_AgentStatus";
col_AgentStatus.ReadOnly = true;
//
// toolStrip_agentSettings
//
@@ -687,7 +619,6 @@ namespace ClawdDotNet
//
dgv_agentTools.AllowUserToAddRows = false;
dgv_agentTools.AllowUserToDeleteRows = false;
dgv_agentTools.AutoGenerateColumns = false;
dgv_agentTools.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dgv_agentTools.BackgroundColor = Color.FromArgb(45, 45, 45);
dataGridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft;
@@ -699,7 +630,6 @@ namespace ClawdDotNet
dataGridViewCellStyle3.WrapMode = DataGridViewTriState.True;
dgv_agentTools.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle3;
dgv_agentTools.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgv_agentTools.Columns.AddRange(new DataGridViewColumn[] { col_ToolAssigned2, col_ToolName2, col_ToolDescription2 });
dataGridViewCellStyle4.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = Color.FromArgb(55, 55, 55);
dataGridViewCellStyle4.Font = new Font("Segoe UI", 9F);
@@ -718,31 +648,6 @@ namespace ClawdDotNet
dgv_agentTools.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgv_agentTools.Size = new Size(984, 334);
dgv_agentTools.TabIndex = 0;
//
// col_ToolAssigned2
//
col_ToolAssigned2.DataPropertyName = "Assigned";
col_ToolAssigned2.HeaderText = "Aktiv";
col_ToolAssigned2.MinimumWidth = 8;
col_ToolAssigned2.Name = "col_ToolAssigned2";
col_ToolAssigned2.Width = 60;
//
// col_ToolName2
//
col_ToolName2.DataPropertyName = "ToolName";
col_ToolName2.HeaderText = "Tool";
col_ToolName2.MinimumWidth = 8;
col_ToolName2.Name = "col_ToolName2";
col_ToolName2.ReadOnly = true;
//
// col_ToolDescription2
//
col_ToolDescription2.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
col_ToolDescription2.DataPropertyName = "Description";
col_ToolDescription2.HeaderText = "Beschreibung";
col_ToolDescription2.MinimumWidth = 8;
col_ToolDescription2.Name = "col_ToolDescription2";
col_ToolDescription2.ReadOnly = true;
//
// pg_agentToolSettings
//
@@ -792,7 +697,6 @@ namespace ClawdDotNet
//
dgv_Jobs.AllowUserToAddRows = false;
dgv_Jobs.AllowUserToDeleteRows = false;
dgv_Jobs.AutoGenerateColumns = false;
dgv_Jobs.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dgv_Jobs.BackgroundColor = Color.FromArgb(45, 45, 45);
dataGridViewCellStyle5.Alignment = DataGridViewContentAlignment.MiddleLeft;
@@ -804,7 +708,6 @@ namespace ClawdDotNet
dataGridViewCellStyle5.WrapMode = DataGridViewTriState.True;
dgv_Jobs.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle5;
dgv_Jobs.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgv_Jobs.Columns.AddRange(new DataGridViewColumn[] { col_JobType, col_JobAgentName, col_JobToolName, col_JobCron, col_JobTask, col_JobNextRun, col_JobLastRun, col_JobLastStatus, col_JobAutostart, col_JobStatus });
dataGridViewCellStyle6.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle6.BackColor = Color.FromArgb(55, 55, 55);
dataGridViewCellStyle6.Font = new Font("Segoe UI", 9F);
@@ -825,87 +728,6 @@ namespace ClawdDotNet
dgv_Jobs.Size = new Size(1870, 803);
dgv_Jobs.TabIndex = 1;
dgv_Jobs.CellContentClick += dgv_Jobs_CellContentClick;
//
// col_JobType
//
col_JobType.DataPropertyName = "JobType";
col_JobType.HeaderText = "Typ";
col_JobType.MinimumWidth = 8;
col_JobType.Name = "col_JobType";
col_JobType.ReadOnly = true;
//
// col_JobAgentName
//
col_JobAgentName.DataPropertyName = "AgentName";
col_JobAgentName.HeaderText = "Agent";
col_JobAgentName.MinimumWidth = 8;
col_JobAgentName.Name = "col_JobAgentName";
col_JobAgentName.ReadOnly = true;
//
// col_JobToolName
//
col_JobToolName.DataPropertyName = "ToolName";
col_JobToolName.HeaderText = "Tool";
col_JobToolName.MinimumWidth = 8;
col_JobToolName.Name = "col_JobToolName";
col_JobToolName.ReadOnly = true;
//
// col_JobCron
//
col_JobCron.DataPropertyName = "CronExpression";
col_JobCron.HeaderText = "Zeitplan";
col_JobCron.MinimumWidth = 8;
col_JobCron.Name = "col_JobCron";
col_JobCron.ReadOnly = true;
//
// col_JobTask
//
col_JobTask.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
col_JobTask.DataPropertyName = "TaskMessage";
col_JobTask.HeaderText = "Aufgabe";
col_JobTask.MinimumWidth = 8;
col_JobTask.Name = "col_JobTask";
col_JobTask.ReadOnly = true;
//
// col_JobNextRun
//
col_JobNextRun.DataPropertyName = "NextRun";
col_JobNextRun.HeaderText = "Naechste Ausf.";
col_JobNextRun.MinimumWidth = 8;
col_JobNextRun.Name = "col_JobNextRun";
col_JobNextRun.ReadOnly = true;
//
// col_JobLastRun
//
col_JobLastRun.DataPropertyName = "LastRun";
col_JobLastRun.HeaderText = "Letzte Ausf.";
col_JobLastRun.MinimumWidth = 8;
col_JobLastRun.Name = "col_JobLastRun";
col_JobLastRun.ReadOnly = true;
//
// col_JobLastStatus
//
col_JobLastStatus.DataPropertyName = "LastStatus";
col_JobLastStatus.HeaderText = "Letzter Status";
col_JobLastStatus.MinimumWidth = 8;
col_JobLastStatus.Name = "col_JobLastStatus";
col_JobLastStatus.ReadOnly = true;
//
// col_JobAutostart
//
col_JobAutostart.DataPropertyName = "RunOnStart";
col_JobAutostart.HeaderText = "Autostart";
col_JobAutostart.MinimumWidth = 8;
col_JobAutostart.Name = "col_JobAutostart";
col_JobAutostart.ReadOnly = true;
//
// col_JobStatus
//
col_JobStatus.DataPropertyName = "Status";
col_JobStatus.HeaderText = "Status";
col_JobStatus.MinimumWidth = 8;
col_JobStatus.Name = "col_JobStatus";
col_JobStatus.ReadOnly = true;
//
// toolStrip_jobs
//
@@ -967,7 +789,6 @@ namespace ClawdDotNet
//
dgv_services.AllowUserToAddRows = false;
dgv_services.AllowUserToDeleteRows = false;
dgv_services.AutoGenerateColumns = false;
dgv_services.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dgv_services.BackgroundColor = Color.FromArgb(45, 45, 45);
dataGridViewCellStyle7.Alignment = DataGridViewContentAlignment.MiddleLeft;
@@ -979,7 +800,6 @@ namespace ClawdDotNet
dataGridViewCellStyle7.WrapMode = DataGridViewTriState.True;
dgv_services.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7;
dgv_services.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgv_services.Columns.AddRange(new DataGridViewColumn[] { col_SvcName, col_SvcType, col_SvcPort, col_SvcStatus, col_SvcStartedAt, col_SvcDescription, col_SvcBuiltIn });
dataGridViewCellStyle8.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle8.BackColor = Color.FromArgb(55, 55, 55);
dataGridViewCellStyle8.Font = new Font("Segoe UI", 9F);
@@ -999,63 +819,6 @@ namespace ClawdDotNet
dgv_services.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgv_services.Size = new Size(1870, 803);
dgv_services.TabIndex = 1;
//
// col_SvcName
//
col_SvcName.DataPropertyName = "Name";
col_SvcName.HeaderText = "Name";
col_SvcName.MinimumWidth = 8;
col_SvcName.Name = "col_SvcName";
col_SvcName.ReadOnly = true;
//
// col_SvcType
//
col_SvcType.DataPropertyName = "Type";
col_SvcType.HeaderText = "Typ";
col_SvcType.MinimumWidth = 8;
col_SvcType.Name = "col_SvcType";
col_SvcType.ReadOnly = true;
//
// col_SvcPort
//
col_SvcPort.DataPropertyName = "Port";
col_SvcPort.HeaderText = "Port";
col_SvcPort.MinimumWidth = 8;
col_SvcPort.Name = "col_SvcPort";
col_SvcPort.ReadOnly = true;
//
// col_SvcStatus
//
col_SvcStatus.DataPropertyName = "Status";
col_SvcStatus.HeaderText = "Status";
col_SvcStatus.MinimumWidth = 8;
col_SvcStatus.Name = "col_SvcStatus";
col_SvcStatus.ReadOnly = true;
//
// col_SvcStartedAt
//
col_SvcStartedAt.DataPropertyName = "StartedAt";
col_SvcStartedAt.HeaderText = "Gestartet";
col_SvcStartedAt.MinimumWidth = 8;
col_SvcStartedAt.Name = "col_SvcStartedAt";
col_SvcStartedAt.ReadOnly = true;
//
// col_SvcDescription
//
col_SvcDescription.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
col_SvcDescription.DataPropertyName = "Description";
col_SvcDescription.HeaderText = "Beschreibung";
col_SvcDescription.MinimumWidth = 8;
col_SvcDescription.Name = "col_SvcDescription";
col_SvcDescription.ReadOnly = true;
//
// col_SvcBuiltIn
//
col_SvcBuiltIn.DataPropertyName = "BuiltIn";
col_SvcBuiltIn.HeaderText = "Integriert";
col_SvcBuiltIn.MinimumWidth = 8;
col_SvcBuiltIn.Name = "col_SvcBuiltIn";
col_SvcBuiltIn.ReadOnly = true;
//
// toolStrip_services
//
@@ -1099,6 +862,52 @@ namespace ClawdDotNet
btn_stopService.Size = new Size(83, 29);
btn_stopService.Text = "Stoppen";
//
// tabPage_jobHistory
//
tabPage_jobHistory.Controls.Add(dgv_jobhistory);
tabPage_jobHistory.Location = new Point(4, 34);
tabPage_jobHistory.Name = "tabPage_jobHistory";
tabPage_jobHistory.Padding = new Padding(3);
tabPage_jobHistory.Size = new Size(1876, 843);
tabPage_jobHistory.TabIndex = 2;
tabPage_jobHistory.Text = "Job History";
tabPage_jobHistory.UseVisualStyleBackColor = true;
//
// dgv_jobhistory
//
dgv_jobhistory.AllowUserToAddRows = false;
dgv_jobhistory.AllowUserToDeleteRows = false;
dgv_jobhistory.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dgv_jobhistory.BackgroundColor = Color.FromArgb(45, 45, 45);
dataGridViewCellStyle9.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle9.BackColor = Color.FromArgb(35, 35, 35);
dataGridViewCellStyle9.Font = new Font("Segoe UI", 9F);
dataGridViewCellStyle9.ForeColor = Color.White;
dataGridViewCellStyle9.SelectionBackColor = SystemColors.Highlight;
dataGridViewCellStyle9.SelectionForeColor = SystemColors.HighlightText;
dataGridViewCellStyle9.WrapMode = DataGridViewTriState.True;
dgv_jobhistory.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle9;
dgv_jobhistory.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewCellStyle10.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle10.BackColor = Color.FromArgb(55, 55, 55);
dataGridViewCellStyle10.Font = new Font("Segoe UI", 9F);
dataGridViewCellStyle10.ForeColor = Color.White;
dataGridViewCellStyle10.SelectionBackColor = Color.FromArgb(80, 120, 200);
dataGridViewCellStyle10.SelectionForeColor = SystemColors.HighlightText;
dataGridViewCellStyle10.WrapMode = DataGridViewTriState.False;
dgv_jobhistory.DefaultCellStyle = dataGridViewCellStyle10;
dgv_jobhistory.Dock = DockStyle.Fill;
dgv_jobhistory.EnableHeadersVisualStyles = false;
dgv_jobhistory.Location = new Point(3, 3);
dgv_jobhistory.MultiSelect = false;
dgv_jobhistory.Name = "dgv_jobhistory";
dgv_jobhistory.ReadOnly = true;
dgv_jobhistory.RowHeadersVisible = false;
dgv_jobhistory.RowHeadersWidth = 62;
dgv_jobhistory.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgv_jobhistory.Size = new Size(1870, 837);
dgv_jobhistory.TabIndex = 0;
//
// tabPage_Info
//
tabPage_Info.Controls.Add(label2);
@@ -1129,115 +938,24 @@ namespace ClawdDotNet
label_Softwareinfo.TabIndex = 0;
label_Softwareinfo.Text = "label1";
//
// tabPage_jobHistory
// tabPage_backup
//
tabPage_jobHistory.Controls.Add(dgv_jobhistory);
tabPage_jobHistory.Location = new Point(4, 34);
tabPage_jobHistory.Name = "tabPage_jobHistory";
tabPage_jobHistory.Padding = new Padding(3);
tabPage_jobHistory.Size = new Size(1876, 843);
tabPage_jobHistory.TabIndex = 2;
tabPage_jobHistory.Text = "Job History";
tabPage_jobHistory.UseVisualStyleBackColor = true;
//
// dgv_jobhistory
//
dgv_jobhistory.AllowUserToAddRows = false;
dgv_jobhistory.AllowUserToDeleteRows = false;
dgv_jobhistory.AutoGenerateColumns = false;
dgv_jobhistory.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dgv_jobhistory.BackgroundColor = Color.FromArgb(45, 45, 45);
dataGridViewCellStyle9.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle9.BackColor = Color.FromArgb(35, 35, 35);
dataGridViewCellStyle9.Font = new Font("Segoe UI", 9F);
dataGridViewCellStyle9.ForeColor = Color.White;
dataGridViewCellStyle9.SelectionBackColor = SystemColors.Highlight;
dataGridViewCellStyle9.SelectionForeColor = SystemColors.HighlightText;
dataGridViewCellStyle9.WrapMode = DataGridViewTriState.True;
dgv_jobhistory.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle9;
dgv_jobhistory.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgv_jobhistory.Columns.AddRange(new DataGridViewColumn[] { col_HistJobName, col_HistAgent, col_HistTime, col_HistDescription, col_HistInfo, col_HistStatus });
dataGridViewCellStyle10.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle10.BackColor = Color.FromArgb(55, 55, 55);
dataGridViewCellStyle10.Font = new Font("Segoe UI", 9F);
dataGridViewCellStyle10.ForeColor = Color.White;
dataGridViewCellStyle10.SelectionBackColor = Color.FromArgb(80, 120, 200);
dataGridViewCellStyle10.SelectionForeColor = SystemColors.HighlightText;
dataGridViewCellStyle10.WrapMode = DataGridViewTriState.False;
dgv_jobhistory.DefaultCellStyle = dataGridViewCellStyle10;
dgv_jobhistory.Dock = DockStyle.Fill;
dgv_jobhistory.EnableHeadersVisualStyles = false;
dgv_jobhistory.Location = new Point(3, 3);
dgv_jobhistory.MultiSelect = false;
dgv_jobhistory.Name = "dgv_jobhistory";
dgv_jobhistory.ReadOnly = true;
dgv_jobhistory.RowHeadersVisible = false;
dgv_jobhistory.RowHeadersWidth = 62;
dgv_jobhistory.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgv_jobhistory.Size = new Size(1870, 837);
dgv_jobhistory.TabIndex = 0;
tabPage_backup.Controls.Add(backupPanel);
tabPage_backup.Location = new Point(4, 34);
tabPage_backup.Name = "tabPage_backup";
tabPage_backup.Padding = new Padding(3);
tabPage_backup.Size = new Size(1876, 843);
tabPage_backup.TabIndex = 2;
tabPage_backup.Text = "Backup";
tabPage_backup.UseVisualStyleBackColor = true;
//
// col_HistJobName
// backupPanel
//
col_HistJobName.DataPropertyName = "JobName";
col_HistJobName.HeaderText = "Job";
col_HistJobName.MinimumWidth = 8;
col_HistJobName.Name = "col_HistJobName";
col_HistJobName.ReadOnly = true;
//
// col_HistAgent
//
col_HistAgent.DataPropertyName = "Agent";
col_HistAgent.HeaderText = "Agent";
col_HistAgent.MinimumWidth = 8;
col_HistAgent.Name = "col_HistAgent";
col_HistAgent.ReadOnly = true;
//
// col_HistTime
//
col_HistTime.DataPropertyName = "Time";
col_HistTime.HeaderText = "Zeit";
col_HistTime.MinimumWidth = 8;
col_HistTime.Name = "col_HistTime";
col_HistTime.ReadOnly = true;
col_HistTime.DefaultCellStyle = new DataGridViewCellStyle { Format = "yyyy-MM-dd HH:mm:ss", BackColor = Color.FromArgb(55, 55, 55), ForeColor = Color.White, SelectionBackColor = Color.FromArgb(80, 120, 200), SelectionForeColor = SystemColors.HighlightText };
//
// col_HistDescription
//
col_HistDescription.DataPropertyName = "JobDescription";
col_HistDescription.HeaderText = "Beschreibung";
col_HistDescription.MinimumWidth = 8;
col_HistDescription.Name = "col_HistDescription";
col_HistDescription.ReadOnly = true;
//
// col_HistInfo
//
col_HistInfo.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
col_HistInfo.DataPropertyName = "Info";
col_HistInfo.HeaderText = "Info";
col_HistInfo.MinimumWidth = 8;
col_HistInfo.Name = "col_HistInfo";
col_HistInfo.ReadOnly = true;
//
// col_HistStatus
//
col_HistStatus.DataPropertyName = "Status";
col_HistStatus.HeaderText = "Status";
col_HistStatus.MinimumWidth = 8;
col_HistStatus.Name = "col_HistStatus";
col_HistStatus.ReadOnly = true;
//
// toolStripStatusLabel2
//
toolStripStatusLabel2.Name = "toolStripStatusLabel2";
toolStripStatusLabel2.Size = new Size(16, 25);
toolStripStatusLabel2.Text = "|";
//
// label_openRouterCreditBalance
//
label_openRouterCreditBalance.Name = "label_openRouterCreditBalance";
label_openRouterCreditBalance.Size = new Size(179, 25);
label_openRouterCreditBalance.Text = "toolStripStatusLabel3";
backupPanel.Dock = DockStyle.Fill;
backupPanel.Location = new Point(3, 3);
backupPanel.Name = "backupPanel";
backupPanel.Size = new Size(1870, 837);
backupPanel.TabIndex = 0;
//
// frm_main
//
@@ -1301,10 +1019,10 @@ namespace ClawdDotNet
((System.ComponentModel.ISupportInitialize)dgv_services).EndInit();
toolStrip_services.ResumeLayout(false);
toolStrip_services.PerformLayout();
tabPage_Info.ResumeLayout(false);
tabPage_Info.PerformLayout();
tabPage_jobHistory.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)dgv_jobhistory).EndInit();
tabPage_Info.ResumeLayout(false);
tabPage_Info.PerformLayout();
ResumeLayout(false);
PerformLayout();
}
@@ -1447,5 +1165,7 @@ namespace ClawdDotNet
private ToolStripStatusLabel toolStripStatusLabel2;
private ToolStripStatusLabel label_openRouterCreditBalance;
private TabPage tabPage_backup;
private ClawdDotNet.UI.BackupPanel backupPanel;
}
}