Merge pull request #307 from LD-Reborn/303-bug-presets-dont-load-when-coming-from-inventory-add-asset-link

303 bug presets dont load when coming from inventory add asset link
This commit is contained in:
LD50
2025-11-15 23:59:35 +01:00
committed by GitHub
3 changed files with 47 additions and 19 deletions

View File

@@ -270,7 +270,19 @@
<script defer>
document.addEventListener('DOMContentLoaded', () => {
document.addEventListener('DOMContentLoaded', () => {
});
document.addEventListener('DOMContentLoaded', async () => {
const createModal = document.getElementById('createAssetModal');
createModal.addEventListener('show.bs.modal', async () => {
const selectLocations = createModal.querySelector('#createLocationSelect');
await loadLocationsIntoSelect(selectLocations);
const selectPresets = createModal.querySelector('#createPresetSelect');
await loadPresetsIntoSelect(selectPresets);
const selectUsers = createModal.querySelector('#createUsersSelect');
await loadUsersIntoSelect(selectUsers);
});
// Open modal if URL contains parameter: CreateModal=true
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.get('CreateModal') === 'true') {
@@ -813,17 +825,6 @@ function registerRowDetailviewClick(row) {
});
}
document.addEventListener('DOMContentLoaded', () => {
const createModal = document.getElementById('createAssetModal');
createModal.addEventListener('show.bs.modal', async () => {
const selectLocations = createModal.querySelector('#createLocationSelect');
await loadLocationsIntoSelect(selectLocations);
const selectPresets = createModal.querySelector('#createPresetSelect');
await loadPresetsIntoSelect(selectPresets);
const selectUsers = createModal.querySelector('#createUsersSelect');
await loadUsersIntoSelect(selectUsers);
});
});
document.addEventListener('DOMContentLoaded', () => {
const presetApplyButton = document.getElementById('createPresetApply');
@@ -950,7 +951,7 @@ document.addEventListener('DOMContentLoaded', () => {
plugins: ['clear_button'],
create: false,
sortField: { field: 'text', direction: 'asc' },
placeholder: '@T["Select user"]',
placeholder: '@T["Select preset"]',
maxOptions: 500, // avoid performance hit if there are many
render: {
no_results: function(data, escape) {

View File

@@ -22,7 +22,7 @@ public class AssetsPageTests : IDisposable
serverProcess = app.Result;
}
[Fact]
[RetryFact(5)]
public void AssetsPage_ShouldShowButton()
{
AppHelper.Login(_driver);
@@ -30,7 +30,7 @@ public class AssetsPageTests : IDisposable
_driver.FindElement(By.CssSelector("button[data-bs-target=\"#createAssetModal\"]"));
}
[Fact]
[RetryFact(5)]
public void AssetsPage_ShouldShowCreateViewModal()
{
AppHelper.Login(_driver);

View File

@@ -5,7 +5,6 @@ using Xunit.Sdk;
namespace Berufsschule_HAM.E2ETests;
[XunitTestCaseDiscoverer("YourNamespace.RetryFactDiscoverer", "YourAssemblyName")]
public class RetryFactAttribute(int maxRetries = 5) : FactAttribute
{
public int MaxRetries { get; } = maxRetries;
@@ -18,8 +17,13 @@ public class RetryTestCase : XunitTestCase
[Obsolete("Called by the de-serializer", true)]
public RetryTestCase() { }
public RetryTestCase(int maxRetries, ITestMethod testMethod)
: base(new NullMessageSink(), TestMethodDisplay.Method, TestMethodDisplayOptions.None, testMethod)
public RetryTestCase(
IMessageSink diagnosticMessageSink,
TestMethodDisplay defaultMethodDisplay,
TestMethodDisplayOptions defaultMethodDisplayOptions,
ITestMethod testMethod,
int maxRetries)
: base(diagnosticMessageSink, defaultMethodDisplay, defaultMethodDisplayOptions, testMethod)
{
_maxRetries = maxRetries;
}
@@ -47,3 +51,26 @@ public class RetryTestCase : XunitTestCase
return summary;
}
}
public class RetryFactDiscoverer : IXunitTestCaseDiscoverer
{
private readonly IMessageSink _diagnosticMessageSink;
public RetryFactDiscoverer(IMessageSink diagnosticMessageSink)
{
_diagnosticMessageSink = diagnosticMessageSink;
}
public IEnumerable<IXunitTestCase> Discover(ITestFrameworkDiscoveryOptions discoveryOptions,
ITestMethod testMethod,
IAttributeInfo factAttribute)
{
var maxRetries = factAttribute.GetNamedArgument<int>("MaxRetries");
yield return new RetryTestCase(
_diagnosticMessageSink,
discoveryOptions.MethodDisplayOrDefault(),
discoveryOptions.MethodDisplayOptionsOrDefault(),
testMethod,
maxRetries);
}
}