add modpack config to workspace (read-only via url)

This commit is contained in:
2024-10-03 11:28:34 +02:00
parent c07ba7fc28
commit a329d21feb
5 changed files with 41 additions and 4 deletions

View File

@@ -6,6 +6,8 @@ public interface IWorkspace
{ {
WorkspaceConfig Config { get; } WorkspaceConfig Config { get; }
ModpackConfig? ModpackConfig { get; }
InstallInfos? InstallInfos { get; } InstallInfos? InstallInfos { get; }
UpdateInfos? UpdateInfos { get; } UpdateInfos? UpdateInfos { get; }

View File

@@ -9,4 +9,6 @@ public abstract class WorkspaceConfig
[JsonIgnore] [JsonIgnore]
public abstract string DisplayText { get; } public abstract string DisplayText { get; }
public string? ModpackConfigUrl { get; set; }
} }

View File

@@ -16,12 +16,16 @@ internal class GitLabRepoWorkspace(GitLabRepoWorkspaceConfig config) : IWorkspac
public IGitLabClient Gitlab { get; } = new GitLabClient(config.InstanceUrl, config.ApiToken); public IGitLabClient Gitlab { get; } = new GitLabClient(config.InstanceUrl, config.ApiToken);
public ModpackConfig? ModpackConfig { get; private set; }
public InstallInfos? InstallInfos { get; private set; } public InstallInfos? InstallInfos { get; private set; }
public UpdateInfos? UpdateInfos { get; private set; } public UpdateInfos? UpdateInfos { get; private set; }
public async Task<bool> Load() public async Task<bool> Load()
{ {
ModpackConfig = ModpackConfig.LoadFromUrl(Config.ModpackConfigUrl);
rawInstallInfos = await GetContent(ConfigX.FileLocationInstallJson); rawInstallInfos = await GetContent(ConfigX.FileLocationInstallJson);
InstallInfos = InstallInfos.Parse(rawInstallInfos); InstallInfos = InstallInfos.Parse(rawInstallInfos);

View File

@@ -41,6 +41,8 @@ partial class GitLabRepoWorkspaceConfigEditor
radLabel4 = new Telerik.WinControls.UI.RadLabel(); radLabel4 = new Telerik.WinControls.UI.RadLabel();
radLabel5 = new Telerik.WinControls.UI.RadLabel(); radLabel5 = new Telerik.WinControls.UI.RadLabel();
radLabel6 = new Telerik.WinControls.UI.RadLabel(); radLabel6 = new Telerik.WinControls.UI.RadLabel();
radLabel7 = new Telerik.WinControls.UI.RadLabel();
radTextBox_ModpackConfigUrl = new Telerik.WinControls.UI.RadTextBox();
tableLayoutPanel1.SuspendLayout(); tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)radTextBox_FileLocUpdateJson).BeginInit(); ((System.ComponentModel.ISupportInitialize)radTextBox_FileLocUpdateJson).BeginInit();
((System.ComponentModel.ISupportInitialize)radTextBox_FileLocInstallJson).BeginInit(); ((System.ComponentModel.ISupportInitialize)radTextBox_FileLocInstallJson).BeginInit();
@@ -54,6 +56,8 @@ partial class GitLabRepoWorkspaceConfigEditor
((System.ComponentModel.ISupportInitialize)radLabel4).BeginInit(); ((System.ComponentModel.ISupportInitialize)radLabel4).BeginInit();
((System.ComponentModel.ISupportInitialize)radLabel5).BeginInit(); ((System.ComponentModel.ISupportInitialize)radLabel5).BeginInit();
((System.ComponentModel.ISupportInitialize)radLabel6).BeginInit(); ((System.ComponentModel.ISupportInitialize)radLabel6).BeginInit();
((System.ComponentModel.ISupportInitialize)radLabel7).BeginInit();
((System.ComponentModel.ISupportInitialize)radTextBox_ModpackConfigUrl).BeginInit();
SuspendLayout(); SuspendLayout();
// //
// tableLayoutPanel1 // tableLayoutPanel1
@@ -74,10 +78,12 @@ partial class GitLabRepoWorkspaceConfigEditor
tableLayoutPanel1.Controls.Add(radLabel4, 0, 6); tableLayoutPanel1.Controls.Add(radLabel4, 0, 6);
tableLayoutPanel1.Controls.Add(radLabel5, 0, 8); tableLayoutPanel1.Controls.Add(radLabel5, 0, 8);
tableLayoutPanel1.Controls.Add(radLabel6, 0, 10); tableLayoutPanel1.Controls.Add(radLabel6, 0, 10);
tableLayoutPanel1.Controls.Add(radLabel7, 0, 12);
tableLayoutPanel1.Controls.Add(radTextBox_ModpackConfigUrl, 0, 13);
tableLayoutPanel1.Dock = DockStyle.Fill; tableLayoutPanel1.Dock = DockStyle.Fill;
tableLayoutPanel1.Location = new Point(0, 30); tableLayoutPanel1.Location = new Point(0, 30);
tableLayoutPanel1.Name = "tableLayoutPanel1"; tableLayoutPanel1.Name = "tableLayoutPanel1";
tableLayoutPanel1.RowCount = 12; tableLayoutPanel1.RowCount = 14;
tableLayoutPanel1.RowStyles.Add(new RowStyle()); tableLayoutPanel1.RowStyles.Add(new RowStyle());
tableLayoutPanel1.RowStyles.Add(new RowStyle()); tableLayoutPanel1.RowStyles.Add(new RowStyle());
tableLayoutPanel1.RowStyles.Add(new RowStyle()); tableLayoutPanel1.RowStyles.Add(new RowStyle());
@@ -90,8 +96,9 @@ partial class GitLabRepoWorkspaceConfigEditor
tableLayoutPanel1.RowStyles.Add(new RowStyle()); tableLayoutPanel1.RowStyles.Add(new RowStyle());
tableLayoutPanel1.RowStyles.Add(new RowStyle()); tableLayoutPanel1.RowStyles.Add(new RowStyle());
tableLayoutPanel1.RowStyles.Add(new RowStyle()); tableLayoutPanel1.RowStyles.Add(new RowStyle());
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F)); tableLayoutPanel1.RowStyles.Add(new RowStyle());
tableLayoutPanel1.Size = new Size(300, 348); tableLayoutPanel1.RowStyles.Add(new RowStyle());
tableLayoutPanel1.Size = new Size(300, 406);
tableLayoutPanel1.TabIndex = 4; tableLayoutPanel1.TabIndex = 4;
// //
// radTextBox_FileLocUpdateJson // radTextBox_FileLocUpdateJson
@@ -191,6 +198,22 @@ partial class GitLabRepoWorkspaceConfigEditor
radLabel6.TabIndex = 12; radLabel6.TabIndex = 12;
radLabel6.Text = "File location for updates info"; radLabel6.Text = "File location for updates info";
// //
// radLabel7
//
radLabel7.Location = new Point(3, 351);
radLabel7.Name = "radLabel7";
radLabel7.Size = new Size(131, 22);
radLabel7.TabIndex = 13;
radLabel7.Text = "Modpack config url";
//
// radTextBox_ModpackConfigUrl
//
radTextBox_ModpackConfigUrl.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
radTextBox_ModpackConfigUrl.Location = new Point(3, 379);
radTextBox_ModpackConfigUrl.Name = "radTextBox_ModpackConfigUrl";
radTextBox_ModpackConfigUrl.Size = new Size(294, 24);
radTextBox_ModpackConfigUrl.TabIndex = 14;
//
// GitLabRepoWorkspaceConfigEditor // GitLabRepoWorkspaceConfigEditor
// //
AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleDimensions = new SizeF(7F, 15F);
@@ -201,7 +224,7 @@ partial class GitLabRepoWorkspaceConfigEditor
Controls.Add(tableLayoutPanel1); Controls.Add(tableLayoutPanel1);
MinimumSize = new Size(300, 0); MinimumSize = new Size(300, 0);
Name = "GitLabRepoWorkspaceConfigEditor"; Name = "GitLabRepoWorkspaceConfigEditor";
Size = new Size(300, 408); Size = new Size(300, 466);
Controls.SetChildIndex(tableLayoutPanel1, 0); Controls.SetChildIndex(tableLayoutPanel1, 0);
tableLayoutPanel1.ResumeLayout(false); tableLayoutPanel1.ResumeLayout(false);
tableLayoutPanel1.PerformLayout(); tableLayoutPanel1.PerformLayout();
@@ -217,6 +240,8 @@ partial class GitLabRepoWorkspaceConfigEditor
((System.ComponentModel.ISupportInitialize)radLabel4).EndInit(); ((System.ComponentModel.ISupportInitialize)radLabel4).EndInit();
((System.ComponentModel.ISupportInitialize)radLabel5).EndInit(); ((System.ComponentModel.ISupportInitialize)radLabel5).EndInit();
((System.ComponentModel.ISupportInitialize)radLabel6).EndInit(); ((System.ComponentModel.ISupportInitialize)radLabel6).EndInit();
((System.ComponentModel.ISupportInitialize)radLabel7).EndInit();
((System.ComponentModel.ISupportInitialize)radTextBox_ModpackConfigUrl).EndInit();
ResumeLayout(false); ResumeLayout(false);
PerformLayout(); PerformLayout();
} }
@@ -236,4 +261,6 @@ partial class GitLabRepoWorkspaceConfigEditor
private Telerik.WinControls.UI.RadLabel radLabel4; private Telerik.WinControls.UI.RadLabel radLabel4;
private Telerik.WinControls.UI.RadLabel radLabel5; private Telerik.WinControls.UI.RadLabel radLabel5;
private Telerik.WinControls.UI.RadLabel radLabel6; private Telerik.WinControls.UI.RadLabel radLabel6;
private Telerik.WinControls.UI.RadLabel radLabel7;
private Telerik.WinControls.UI.RadTextBox radTextBox_ModpackConfigUrl;
} }

View File

@@ -28,6 +28,7 @@ internal partial class GitLabRepoWorkspaceConfigEditor : RadFlyoutBase, ILoadCon
radTextBox_RepoBranche.Text = settings.RepoBranche; radTextBox_RepoBranche.Text = settings.RepoBranche;
radTextBox_FileLocInstallJson.Text = settings.FileLocationInstallJson; radTextBox_FileLocInstallJson.Text = settings.FileLocationInstallJson;
radTextBox_FileLocUpdateJson.Text = settings.FileLocationUpdateJson; radTextBox_FileLocUpdateJson.Text = settings.FileLocationUpdateJson;
radTextBox_ModpackConfigUrl.Text = settings.ModpackConfigUrl;
} }
protected override bool ValidateOK() protected override bool ValidateOK()
@@ -38,6 +39,7 @@ internal partial class GitLabRepoWorkspaceConfigEditor : RadFlyoutBase, ILoadCon
settings.RepoBranche = radTextBox_RepoBranche.Text.Trim(); settings.RepoBranche = radTextBox_RepoBranche.Text.Trim();
settings.FileLocationInstallJson = radTextBox_FileLocInstallJson.Text.Trim(); settings.FileLocationInstallJson = radTextBox_FileLocInstallJson.Text.Trim();
settings.FileLocationUpdateJson = radTextBox_FileLocUpdateJson.Text.Trim(); settings.FileLocationUpdateJson = radTextBox_FileLocUpdateJson.Text.Trim();
settings.ModpackConfigUrl = radTextBox_ModpackConfigUrl.Text.Trim();
return base.ValidateOK(); return base.ValidateOK();
} }
} }