mirror of
https://github.com/techgarage-ir/MTWireGuard.git
synced 2025-08-28 22:08:08 +02:00
Fix update/delete modals JS functions not working
This commit is contained in:
parent
42b17455ca
commit
2df549cfc0
12 changed files with 107 additions and 107 deletions
46
Middlewares/ExceptionHandlerMiddleware.cs
Normal file
46
Middlewares/ExceptionHandlerMiddleware.cs
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
using MTWireGuard.Models.Mikrotik;
|
||||||
|
using System.Net;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace MTWireGuard.Middlewares
|
||||||
|
{
|
||||||
|
public class ExceptionHandlerMiddleware
|
||||||
|
{
|
||||||
|
private readonly RequestDelegate _next;
|
||||||
|
//public (HttpStatusCode code, string message) GetResponse(Exception exception);
|
||||||
|
|
||||||
|
public ExceptionHandlerMiddleware(RequestDelegate next)
|
||||||
|
{
|
||||||
|
_next = next;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task InvokeAsync(HttpContext context)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await _next(context);
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
// log the error
|
||||||
|
//Logger.Error(exception, "error during executing {Context}", context.Request.Path.Value);
|
||||||
|
Console.WriteLine(exception);
|
||||||
|
var response = context.Response;
|
||||||
|
response.ContentType = "application/json";
|
||||||
|
|
||||||
|
// get the response code and message
|
||||||
|
//var (status, message) = GetResponse(exception);
|
||||||
|
response.StatusCode = (int)HttpStatusCode.OK;
|
||||||
|
await response.WriteAsync(exception.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ExceptionHandlerMiddlewareExtensions
|
||||||
|
{
|
||||||
|
public static IApplicationBuilder UseExceptionHandling(this IApplicationBuilder builder)
|
||||||
|
{
|
||||||
|
return builder.UseMiddleware<ExceptionHandlerMiddleware>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -57,47 +57,6 @@
|
||||||
<script src="js/wireguard.js"></script>
|
<script src="js/wireguard.js"></script>
|
||||||
<script src="js/wgelements.js"></script>
|
<script src="js/wgelements.js"></script>
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener("DOMContentLoaded", function (event) {
|
|
||||||
fetch("/Clients/getAll")
|
|
||||||
.then((response) => response.text())
|
|
||||||
.then((data) => {
|
|
||||||
document.querySelector('table tbody').innerHTML = data;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
document.querySelectorAll(".sync-btn").forEach(form => {
|
|
||||||
form.addEventListener('click', function (event) {
|
|
||||||
let Id = event.target.closest('tr').getAttribute('data-id');
|
|
||||||
document.querySelector('#SyncModal input[name="ID"]').value = Id;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
document.querySelectorAll(".delete-btn").forEach(form => {
|
|
||||||
form.addEventListener('click', function (event) {
|
|
||||||
let Id = event.target.closest('tr').getAttribute('data-id');
|
|
||||||
document.querySelector('#DeleteModal input[name="Id"]').value = Id;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
document.querySelectorAll(".update-btn").forEach(form => {
|
|
||||||
form.addEventListener('click', function (event) {
|
|
||||||
document.querySelector('#EditModal form').reset();
|
|
||||||
let row = event.target.closest('tr');
|
|
||||||
let Id = row.getAttribute('data-id');
|
|
||||||
let name = row.querySelector('td:nth-child(2)').innerText;
|
|
||||||
let interface = row.querySelector('td:nth-child(3)').innerText;
|
|
||||||
let address = row.querySelector('td:nth-child(4)').innerText;
|
|
||||||
let publicKey = row.querySelector('td:nth-child(5)').innerText;
|
|
||||||
document.querySelector('#EditModal input[name="ID"]').value = Id;
|
|
||||||
document.querySelector('#EditModal input[name="Name"]').placeholder = name;
|
|
||||||
document.querySelector('#EditModal input[name="AllowedAddress"]').placeholder = address;
|
|
||||||
document.querySelector('#EditModal input[name="PublicKey"]').placeholder = publicKey;
|
|
||||||
let ifOption = document.querySelector('#EditModal option[value="' + interface + '"]');
|
|
||||||
if (ifOption)
|
|
||||||
ifOption.setAttribute("selected", true);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
document.getElementById("QRModal").addEventListener('shown.coreui.modal', (event) => {
|
document.getElementById("QRModal").addEventListener('shown.coreui.modal', (event) => {
|
||||||
let Id = event.relatedTarget.closest('tr').getAttribute('data-id');
|
let Id = event.relatedTarget.closest('tr').getAttribute('data-id');
|
||||||
const xhttp = new XMLHttpRequest();
|
const xhttp = new XMLHttpRequest();
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
<input type="text" class="form-control" id="WGPUKeepAlive" name="KeepAlive" placeholder="Seconds">
|
<input type="text" class="form-control" id="WGPUKeepAlive" name="KeepAlive" placeholder="Seconds">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" name="ID" />
|
<input type="hidden" asp-for="ID" />
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="reset" class="btn btn-secondary" data-coreui-dismiss="modal">Close</button>
|
<button type="reset" class="btn btn-secondary" data-coreui-dismiss="modal">Close</button>
|
||||||
|
|
|
@ -46,38 +46,4 @@
|
||||||
@section Scripts {
|
@section Scripts {
|
||||||
<script src="js/wireguard.js"></script>
|
<script src="js/wireguard.js"></script>
|
||||||
<script src="js/wgelements.js"></script>
|
<script src="js/wgelements.js"></script>
|
||||||
<script>
|
|
||||||
document.addEventListener("DOMContentLoaded", function (event) {
|
|
||||||
fetch("/Servers/getAll")
|
|
||||||
.then((response) => response.text())
|
|
||||||
.then((data) => {
|
|
||||||
document.querySelector('table tbody').innerHTML = data;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
document.querySelectorAll(".delete-btn").forEach(form => {
|
|
||||||
form.addEventListener('click', function (event) {
|
|
||||||
let row = event.target.closest('tr');
|
|
||||||
let Id = row.getAttribute('data-id');
|
|
||||||
document.querySelector('#DeleteModal input[name="Id"]').value = Id;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
document.querySelectorAll(".update-btn").forEach(form => {
|
|
||||||
form.addEventListener('click', function (event) {
|
|
||||||
document.querySelector('#EditModal form').reset();
|
|
||||||
let row = event.target.closest('tr');
|
|
||||||
let Id = row.getAttribute('data-id');
|
|
||||||
let name = row.querySelector('td:nth-child(2)').innerText;
|
|
||||||
let port = row.querySelector('td:nth-child(3)').innerText;
|
|
||||||
let mtu = row.querySelector('td:nth-child(4)').innerText;
|
|
||||||
let publicKey = row.querySelector('td:nth-child(5)').innerText;
|
|
||||||
document.querySelector('#EditModal input[name="ID"]').value = Id;
|
|
||||||
document.querySelector('#EditModal input[name="Name"]').placeholder = name;
|
|
||||||
document.querySelector('#EditModal input[name="Port"]').placeholder = port;
|
|
||||||
document.querySelector('#EditModal input[name="MTU"]').placeholder = mtu;
|
|
||||||
document.querySelector('#EditModal input[id$="PubKey"]').placeholder = publicKey;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,17 +79,17 @@
|
||||||
<div class="dropdown-menu dropdown-menu-end">
|
<div class="dropdown-menu dropdown-menu-end">
|
||||||
@if (user.IsDifferent)
|
@if (user.IsDifferent)
|
||||||
{
|
{
|
||||||
<button class="dropdown-item sync-btn" data-coreui-toggle="modal" data-coreui-target="#SyncModal">Sync</button>
|
<button class="dropdown-item sync-btn" data-coreui-toggle="modal" data-coreui-target="#SyncModal" onclick="syncBtn(event)">Sync</button>
|
||||||
}
|
}
|
||||||
<button class="dropdown-item" data-coreui-toggle="modal" data-coreui-target="#QRModal">QR</button>
|
<button class="dropdown-item" data-coreui-toggle="modal" data-coreui-target="#QRModal">QR</button>
|
||||||
<a class="dropdown-item" asp-page="Clients" asp-page-handler="DownloadTunnel" asp-route-id="@user.Id">Download</a>
|
<a class="dropdown-item" asp-page="Clients" asp-page-handler="DownloadTunnel" asp-route-id="@user.Id">Download</a>
|
||||||
<button class="dropdown-item update-btn" data-coreui-toggle="modal" data-coreui-target="#EditModal">Edit</button>
|
<button class="dropdown-item update-btn" data-coreui-toggle="modal" data-coreui-target="#EditModal" onclick="updateClientBtn(event)">Edit</button>
|
||||||
@{
|
@{
|
||||||
var enabled = user.IsEnabled;
|
var enabled = user.IsEnabled;
|
||||||
string enableORdisable = enabled ? "Disable" : "Enable";
|
string enableORdisable = enabled ? "Disable" : "Enable";
|
||||||
}
|
}
|
||||||
<a class="dropdown-item" asp-page="Clients" asp-page-handler="Enable" asp-route-ID="@user.Id" asp-route-IsEnabled="@enabled" data-target="_self" onclick="ddBtnClick(event);">@enableORdisable</a>
|
<a class="dropdown-item" asp-page="Clients" asp-page-handler="Enable" asp-route-ID="@user.Id" asp-route-IsEnabled="@enabled" data-target="_self" onclick="dropdownBtnClick(event);">@enableORdisable</a>
|
||||||
<button class="dropdown-item delete-btn text-danger" data-coreui-toggle="modal" data-coreui-target="#DeleteModal">Delete</button>
|
<button class="dropdown-item delete-btn text-danger" data-coreui-toggle="modal" data-coreui-target="#DeleteModal" onclick="deleteBtn(event)">Delete</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -203,7 +203,6 @@
|
||||||
<div class="ms-md-auto">Powered by <a href="https://coreui.io/">CoreUI</a></div>
|
<div class="ms-md-auto">Powered by <a href="https://coreui.io/">CoreUI</a></div>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
@Html.AntiForgeryToken()
|
|
||||||
<component type="typeof(Components.ToastContainer)" render-mode="Static" />
|
<component type="typeof(Components.ToastContainer)" render-mode="Static" />
|
||||||
<!-- CoreUI and necessary plugins-->
|
<!-- CoreUI and necessary plugins-->
|
||||||
<script src="vendors/coreui/coreui/js/coreui.bundle.min.js"></script>
|
<script src="vendors/coreui/coreui/js/coreui.bundle.min.js"></script>
|
||||||
|
|
|
@ -69,9 +69,9 @@
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<div class="dropdown-menu dropdown-menu-end">
|
<div class="dropdown-menu dropdown-menu-end">
|
||||||
<a class="dropdown-item" asp-page="Servers" asp-page-handler="Enable" asp-route-ID="@server.Id" asp-route-IsEnabled="@enabled" data-target="_self" onclick="ddBtnClick(event);">@enableORdisable</a>
|
<a class="dropdown-item" asp-page="Servers" asp-page-handler="Enable" asp-route-ID="@server.Id" asp-route-IsEnabled="@enabled" data-target="_self" onclick="dropdownBtnClick(event);">@enableORdisable</a>
|
||||||
<button class="dropdown-item update-btn" data-coreui-toggle="modal" data-coreui-target="#EditModal">Edit</button>
|
<button class="dropdown-item update-btn" data-coreui-toggle="modal" data-coreui-target="#EditModal" onclick="updateServerBtn(event)">Edit</button>
|
||||||
<button class="dropdown-item delete-btn text-danger" data-coreui-toggle="modal" data-coreui-target="#DeleteModal" data-id="@server.Id">Delete</button>
|
<button class="dropdown-item delete-btn text-danger" data-coreui-toggle="modal" data-coreui-target="#DeleteModal" data-id="@server.Id" onclick="deleteBtn(event)">Delete</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|
15
Program.cs
15
Program.cs
|
@ -9,20 +9,6 @@ using MTWireGuard.Repositories;
|
||||||
using MTWireGuard.Services;
|
using MTWireGuard.Services;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
|
||||||
#region Error Handling
|
|
||||||
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionHandler);
|
|
||||||
|
|
||||||
static void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs e)
|
|
||||||
{
|
|
||||||
Exception ex = e.ExceptionObject as Exception;
|
|
||||||
if (e.IsTerminating)
|
|
||||||
Debug.WriteLine($"[+] {ex.Message}");
|
|
||||||
else
|
|
||||||
Debug.WriteLine($"[-] {ex.Message}");
|
|
||||||
throw ex;
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
using DBContext context = new();
|
using DBContext context = new();
|
||||||
|
|
||||||
|
@ -106,6 +92,7 @@ else
|
||||||
});
|
});
|
||||||
|
|
||||||
app.UseDependencyCheck();
|
app.UseDependencyCheck();
|
||||||
|
//app.UseExceptionHandling();
|
||||||
//app.UseAntiForgery();
|
//app.UseAntiForgery();
|
||||||
|
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
|
|
|
@ -34,7 +34,12 @@ Forms.forEach(form => {
|
||||||
});
|
});
|
||||||
|
|
||||||
dropdownBTNs.forEach(btn => {
|
dropdownBTNs.forEach(btn => {
|
||||||
btn.addEventListener('click', ddBtnClick);
|
btn.addEventListener('click', dropdownBtnClick);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
|
refreshTables();
|
||||||
});
|
});
|
||||||
|
|
||||||
function loadServers() {
|
function loadServers() {
|
||||||
|
@ -60,7 +65,7 @@ function refreshTables() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ddBtnClick(event) {
|
function dropdownBtnClick(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
fetch(event.target.getAttribute('href'))
|
fetch(event.target.getAttribute('href'))
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
|
@ -84,3 +89,45 @@ function ddBtnClick(event) {
|
||||||
refreshTables();
|
refreshTables();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function deleteBtn(event) {
|
||||||
|
let Id = event.target.closest('tr').getAttribute('data-id');
|
||||||
|
document.querySelector('#DeleteModal input[name="Id"]').value = Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncBtn(event) {
|
||||||
|
let Id = event.target.closest('tr').getAttribute('data-id');
|
||||||
|
document.querySelector('#SyncModal input[name="ID"]').value = Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateClientBtn(event) {
|
||||||
|
document.querySelector('#EditModal form').reset();
|
||||||
|
let row = event.target.closest('tr');
|
||||||
|
let Id = row.getAttribute('data-id');
|
||||||
|
let name = row.querySelector('td:nth-child(2)').innerText;
|
||||||
|
let interface = row.querySelector('td:nth-child(3)').innerText;
|
||||||
|
let address = row.querySelector('td:nth-child(4)').innerText;
|
||||||
|
let publicKey = row.querySelector('td:nth-child(5)').innerText;
|
||||||
|
document.querySelector('#EditModal input[name="ID"]').value = Id;
|
||||||
|
document.querySelector('#EditModal input[name="Name"]').placeholder = name;
|
||||||
|
document.querySelector('#EditModal input[name="AllowedAddress"]').placeholder = address;
|
||||||
|
document.querySelector('#EditModal input[name="PublicKey"]').placeholder = publicKey;
|
||||||
|
let ifOption = document.querySelector('#EditModal option[value="' + interface + '"]');
|
||||||
|
if (ifOption)
|
||||||
|
ifOption.setAttribute("selected", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateServerBtn(event) {
|
||||||
|
document.querySelector('#EditModal form').reset();
|
||||||
|
let row = event.target.closest('tr');
|
||||||
|
let Id = row.getAttribute('data-id');
|
||||||
|
let name = row.querySelector('td:nth-child(2)').innerText;
|
||||||
|
let port = row.querySelector('td:nth-child(3)').innerText;
|
||||||
|
let mtu = row.querySelector('td:nth-child(4)').innerText;
|
||||||
|
let publicKey = row.querySelector('td:nth-child(5)').innerText;
|
||||||
|
document.querySelector('#EditModal input[name="ID"]').value = Id;
|
||||||
|
document.querySelector('#EditModal input[name="Name"]').placeholder = name;
|
||||||
|
document.querySelector('#EditModal input[name="Port"]').placeholder = port;
|
||||||
|
document.querySelector('#EditModal input[name="MTU"]').placeholder = mtu;
|
||||||
|
document.querySelector('#EditModal input[id$="PubKey"]').placeholder = publicKey;
|
||||||
|
}
|
||||||
|
|
|
@ -14,11 +14,7 @@ function generateKeys(dom) {
|
||||||
function changeIcon(btn) {
|
function changeIcon(btn) {
|
||||||
let frm = btn.closest('form');
|
let frm = btn.closest('form');
|
||||||
let pk = frm.querySelector('input[id$="PubKey"]');
|
let pk = frm.querySelector('input[id$="PubKey"]');
|
||||||
pk.toggleAttribute('disabled');/*
|
pk.toggleAttribute('disabled');
|
||||||
if (btn.getAttribute('id') == 'PUnlockBTN')
|
|
||||||
document.getElementById('WGPPubKey').toggleAttribute('disabled');
|
|
||||||
else
|
|
||||||
document.getElementById('WGSPubKey').toggleAttribute('disabled');*/
|
|
||||||
let svg = btn.children.item(0);
|
let svg = btn.children.item(0);
|
||||||
let use = svg.children.item(0);
|
let use = svg.children.item(0);
|
||||||
let icon = use.getAttribute('xlink:href');
|
let icon = use.getAttribute('xlink:href');
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue