module config page added

This commit is contained in:
gaz8860 Gary 2023-05-01 00:48:37 +01:00
parent ed399bfbde
commit 36470f8264
3 changed files with 139 additions and 15 deletions

View File

@ -0,0 +1,5 @@
public class ModuleConfig {
public string ImageName {get; set;}
public Dictionary<string, string> Environment {get; set;} = new Dictionary<string, string>();
public Dictionary<string, string> Volumes {get; set;} = new Dictionary<string, string>();
}

View File

@ -1,15 +0,0 @@
public class Post {
public int userId {get; set;}
public int id {get; set;}
public string title {get; set;}
public string body {get; set;}
public Post(int userId, int id, string title, string body){
userId = userId;
id = id;
title = title;
body = body;
}
}

View File

@ -0,0 +1,134 @@
@page "/module-config"
@using System.Text.Json
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.JSInterop
@using System.Net;
@using PanoptesFrontend.Data
@using PanoptesFrontend.Services
@inject IHttpService httpService
<h1>Module Configuration</h1>
<div class="row">
<div class="col-12">
<div class="form-group">
<label for="imageName">Image Name</label>
<input type="text" class="form-control" id="imageName" @bind="ModuleConfig.ImageName" />
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h2>Environment</h2>
</div>
<div class="card-body">
<div class="form-group">
<label for="key1">Key</label>
<input type="text" class="form-control" id="key1" @bind="Key1" />
</div>
<div class="form-group">
<label for="value1">Value</label>
<input type="text" class="form-control" id="value1" @bind="Value1" />
</div>
<button class="btn btn-primary" @onclick="AddKeyValuePair1">Add</button>
<table class="table mt-2">
<thead>
<tr>
<th>Key</th>
<th>Value</th>
</tr>
</thead>
<tbody>
@foreach (var kvp in ModuleConfig.Environment)
{
<tr>
<td>@kvp.Key</td>
<td>@kvp.Value</td>
</tr>
}
</tbody>
</table>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h2>Volumes</h2>
</div>
<div class="card-body">
<div class="form-group">
<label for="key2">Key</label>
<input type="text" class="form-control" id="key2" @bind="Key2" />
</div>
<div class="form-group">
<label for="value2">Value</label>
<input type="text" class="form-control" id="value2" @bind="Value2" />
</div>
<button class="btn btn-primary" @onclick="AddKeyValuePair2">Add</button>
<table class="table mt-2">
<thead>
<tr>
<th>Key</th>
<th>Value</th>
</tr>
</thead>
<tbody>
@foreach (var kvp in ModuleConfig.Volumes)
{
<tr>
<td>@kvp.Key</td>
<td>@kvp.Value</td>
</tr>
}
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12 mt-3">
<button class="btn btn-success" @onclick="SubmitForm">Submit</button>
</div>
</div>
@code
{
@code {
private string Key1 { get; set; }
private string Value1 { get; set; }
private string Key2 { get; set; }
private string Value2 { get; set; }
private ModuleConfig ModuleConfig { get; set; } = new ModuleConfig();
private void AddKeyValuePair1()
{
ModuleConfig.Environment.Add(Key1, Value1);
Key1 = "";
Value1 = "";
}
private void AddKeyValuePair2()
{
ModuleConfig.Volumes.Add(Key2, Value2);
Key2 = "";
Value2 = "";
}
private async void SubmitForm()
{
// Log ModuleConfig object to console and send to backend
var config = JsonSerializer.Serialize(ModuleConfig);
await httpService.PostAsync("http://localhost:8080/config_module", config);
}
}
}