From b062f2d0b96e7af9d268bcc4d602c66503facbc2 Mon Sep 17 00:00:00 2001 From: Idevaldo De Lira Date: Fri, 5 Apr 2024 11:30:43 +0200 Subject: [PATCH 01/11] Removes part already defined in parent class Fixes: OX-9839 --- .../biz/scripting/mongo/MongoCustomScriptController.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java b/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java index 8e97b7ed5..c92eb7e3b 100644 --- a/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java +++ b/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java @@ -36,9 +36,6 @@ public class MongoCustomScriptController extends BizController { private static final String PARAM_SCRIPT = "script"; - @Part - private Mango mango; - /** * Lists all scripts available for the current tenant. * From d80acd78976102980d9e480852b4dedfcc15adb7 Mon Sep 17 00:00:00 2001 From: Idevaldo De Lira Date: Fri, 5 Apr 2024 11:32:15 +0200 Subject: [PATCH 02/11] Adds missing parameters to JavaDoc Fixes: OX-9839 --- .../biz/scripting/mongo/MongoCustomScriptController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java b/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java index c92eb7e3b..d3733e467 100644 --- a/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java +++ b/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java @@ -13,8 +13,6 @@ import sirius.biz.web.BizController; import sirius.biz.web.MongoPageHelper; import sirius.db.mixing.query.QueryField; -import sirius.db.mongo.Mango; -import sirius.kernel.di.std.Part; import sirius.kernel.di.std.Register; import sirius.kernel.tokenizer.Position; import sirius.pasta.noodle.compiler.CompilationContext; @@ -57,6 +55,7 @@ public void listScripts(WebContext webContext) { * Modifies / manages the given script. * * @param webContext the request to handle + * @param id the id of the script to manage */ @Routed("/scripting/scripts/:1") @Permission(ScriptingController.PERMISSION_SCRIPTING) @@ -72,6 +71,7 @@ public void editScript(WebContext webContext, String id) { * Deletes the given script. * * @param webContext the request to handle + * @param id the id of the script to delete */ @Routed("/scripting/scripts/:1/delete") @Permission(ScriptingController.PERMISSION_SCRIPTING) From ce55d3ecc50b5ec0edf2ac7c7b4b2a53562a5435 Mon Sep 17 00:00:00 2001 From: Idevaldo De Lira Date: Fri, 5 Apr 2024 13:10:22 +0200 Subject: [PATCH 03/11] Permits to disable scripts Fixes: OX-9839 --- .../mongo/MongoCustomEventDispatcherRepository.java | 9 +++++++-- .../biz/scripting/mongo/MongoCustomScript.java | 13 +++++++++++++ src/main/resources/biz_de.properties | 1 + .../templates/biz/scripting/mongo-script.html.pasta | 13 +++++++++---- .../biz/scripting/mongo-scripts.html.pasta | 4 ++++ 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java b/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java index a27e702a3..63328bee6 100644 --- a/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java +++ b/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java @@ -55,6 +55,7 @@ public class MongoCustomEventDispatcherRepository implements ScriptableEventDisp public List fetchAvailableDispatchers(@Nonnull String tenantId) { return mango.select(MongoCustomScript.class) .eq(MongoCustomScript.TENANT, tenantId) + .ne(MongoCustomScript.DISABLED, true) .orderAsc(MongoCustomScript.CODE) .queryList() .stream() @@ -65,8 +66,11 @@ public List fetchAvailableDispatchers(@Nonnull String tenantId) { @Override public Optional fetchDispatcher(@Nonnull String tenantId, @Nullable String name) { if (Strings.isEmpty(name)) { - List mongoCustomScripts = - mango.select(MongoCustomScript.class).eq(MongoCustomScript.TENANT, tenantId).limit(2).queryList(); + List mongoCustomScripts = mango.select(MongoCustomScript.class) + .eq(MongoCustomScript.TENANT, tenantId) + .ne(MongoCustomScript.DISABLED, true) + .limit(2) + .queryList(); if (mongoCustomScripts.size() == 1) { return compileAndLoad(mongoCustomScripts.getFirst()); } else { @@ -76,6 +80,7 @@ public Optional fetchDispatcher(@Nonnull String tenan return mango.select(MongoCustomScript.class) .eq(MongoCustomScript.TENANT, tenantId) .eq(MongoCustomScript.CODE, name) + .ne(MongoCustomScript.DISABLED, true) .first() .flatMap(this::compileAndLoad); } diff --git a/src/main/java/sirius/biz/scripting/mongo/MongoCustomScript.java b/src/main/java/sirius/biz/scripting/mongo/MongoCustomScript.java index 1caeac0c9..f6eb55cb6 100644 --- a/src/main/java/sirius/biz/scripting/mongo/MongoCustomScript.java +++ b/src/main/java/sirius/biz/scripting/mongo/MongoCustomScript.java @@ -38,6 +38,11 @@ public class MongoCustomScript extends MongoTenantAware { @AutoImport private String code; + public static final Mapping DISABLED = Mapping.named("disabled"); + @Autoloaded + @AutoImport + private boolean disabled; + /** * Contains the actual scripting code. */ @@ -71,4 +76,12 @@ public String getScript() { public void setScript(String script) { this.script = script; } + + public boolean isDisabled() { + return disabled; + } + + public void setDisabled(boolean inactive) { + this.disabled = inactive; + } } diff --git a/src/main/resources/biz_de.properties b/src/main/resources/biz_de.properties index bdba5f3b4..5f1777973 100644 --- a/src/main/resources/biz_de.properties +++ b/src/main/resources/biz_de.properties @@ -671,6 +671,7 @@ MongoCodeListExportJobFactory.label = Codeliste exportieren MongoCodeListImportJobFactory.description = Importiert eine Codeliste aus einer CSV oder Excel Datei. MongoCodeListImportJobFactory.label = Codeliste importieren MongoCustomScript.code = Code +MongoCustomScript.disabled = Deaktiviert MongoCustomScript.plural = Kunden-Scripte MongoCustomScript.script = Quelltext MongoCustomScript.unnamedScript = Unbenanntes Script diff --git a/src/main/resources/default/templates/biz/scripting/mongo-script.html.pasta b/src/main/resources/default/templates/biz/scripting/mongo-script.html.pasta index dc1dc29eb..4a22d6459 100644 --- a/src/main/resources/default/templates/biz/scripting/mongo-script.html.pasta +++ b/src/main/resources/default/templates/biz/scripting/mongo-script.html.pasta @@ -21,10 +21,15 @@ - +
+ + +
diff --git a/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta b/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta index da8d1ec1b..6aec3f47a 100644 --- a/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta +++ b/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta @@ -21,6 +21,7 @@ @i18n("MongoCustomScript.code") + @i18n("MongoCustomScript.disabled") @@ -30,6 +31,9 @@ @script.getCode() + + @toUserString(script.isDisabled()) + Date: Fri, 5 Apr 2024 13:28:42 +0200 Subject: [PATCH 04/11] Creates a fresh parameter when collecting ensuring its loading the latest state of scripts Fixes: OX-9839 --- .../jobs/batch/ImportBatchProcessFactory.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java b/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java index a12171653..006e0c6c0 100644 --- a/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java +++ b/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java @@ -40,10 +40,19 @@ public String queueName() { /** * Permits selecting the {@link sirius.biz.scripting.ScriptableEventDispatcher} to use for this import. */ - public static final Parameter DISPATCHER_PARAMETER; + public static final Parameter DISPATCHER_PARAMETER = createDispatcherParameter(); - static { - SelectStringParameter dispatcherParameter = new SelectStringParameter("eventDispatcher", "$ImportBatchProcessFactory.eventDispatcher"); + @Part + private ScriptableEvents scriptableEvents; + + /** + * Creates a new instance of the dispatcher parameter. + * + * @return a new instance of the dispatcher parameter + */ + public static Parameter createDispatcherParameter() { + SelectStringParameter dispatcherParameter = + new SelectStringParameter("eventDispatcher", "$ImportBatchProcessFactory.eventDispatcher"); dispatcherParameter.markRequired(); dispatcherParameter.withDescription("$ImportBatchProcessFactory.eventDispatcher.help"); dispatcherParameter.withEntriesProvider(() -> { @@ -51,24 +60,21 @@ public String queueName() { ScriptableEvents scriptableEvents = Injector.context().getPart(ScriptableEvents.class); if (scriptableEvents != null) { scriptableEvents.fetchDispatchersForCurrentTenant() - .forEach(dispatcher -> eventDispatchers.put(dispatcher, dispatcher)); + .forEach(dispatcher -> eventDispatchers.put(dispatcher, dispatcher)); } return eventDispatchers; }); - DISPATCHER_PARAMETER = dispatcherParameter.build(); + return dispatcherParameter.build(); } - @Part - private ScriptableEvents scriptableEvents; - @Override protected abstract ImportJob createJob(ProcessContext process); @Override protected void collectParameters(Consumer> parameterCollector) { if (scriptableEvents.fetchDispatchersForCurrentTenant().size() > 1) { - parameterCollector.accept(DISPATCHER_PARAMETER); + parameterCollector.accept(createDispatcherParameter()); } } From eefd684f356033a61ecc35c992bb50d6559c51bb Mon Sep 17 00:00:00 2001 From: Idevaldo De Lira Date: Fri, 5 Apr 2024 14:33:51 +0200 Subject: [PATCH 05/11] Permits to disable scripting in jobs enableScriptableEvents must be overwritten so scripting takes effect. If active, and only one script exists, the parameter is collected hidden and the first entry will be the default one. This also provides better tracking to which dispatcher was actually used (even a hidden one) since the parameter and its value is logged at job start. Fixes: OX-9839 --- .../jobs/batch/ImportBatchProcessFactory.java | 16 ++++++++++- .../ScriptableEventDispatcherRepository.java | 6 ++-- .../biz/scripting/ScriptableEvents.java | 8 +++--- .../MongoCustomEventDispatcherRepository.java | 28 +++++-------------- 4 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java b/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java index 006e0c6c0..630d42647 100644 --- a/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java +++ b/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java @@ -64,16 +64,30 @@ public static Parameter createDispatcherParameter() { } return eventDispatchers; }); + dispatcherParameter.hideWhen((parameter, context) -> { + return parameter.getValues().size() == 1; + }); return dispatcherParameter.build(); } + /** + * Determines if scriptable events are enabled for this factory. + *

+ * Disabled by default. Override this method to enable scriptable events where needed. + * + * @return true if scriptable events should be enabled, false otherwise + */ + protected boolean enableScriptableEvents() { + return false; + } + @Override protected abstract ImportJob createJob(ProcessContext process); @Override protected void collectParameters(Consumer> parameterCollector) { - if (scriptableEvents.fetchDispatchersForCurrentTenant().size() > 1) { + if (enableScriptableEvents()) { parameterCollector.accept(createDispatcherParameter()); } } diff --git a/src/main/java/sirius/biz/scripting/ScriptableEventDispatcherRepository.java b/src/main/java/sirius/biz/scripting/ScriptableEventDispatcherRepository.java index 351a4d904..edd2b0105 100644 --- a/src/main/java/sirius/biz/scripting/ScriptableEventDispatcherRepository.java +++ b/src/main/java/sirius/biz/scripting/ScriptableEventDispatcherRepository.java @@ -11,7 +11,6 @@ import sirius.kernel.di.std.AutoRegister; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.util.List; import java.util.Optional; @@ -37,8 +36,7 @@ public interface ScriptableEventDispatcherRepository { * @param tenantId the tenant for which to fetch the dispatcher * @param name the name of the dispatcher to fetch * @return the dispatcher with the given name for the given tenant wrapped as optional or an empty optional if - * no such dispatcher exists. NOTE: if an empty name is given, the first dispatcher for the given tenant - * is used. This helps to simplify the usage of custom events. + * no such dispatcher exists. */ - Optional fetchDispatcher(@Nonnull String tenantId, @Nullable String name); + Optional fetchDispatcher(@Nonnull String tenantId, @Nonnull String name); } diff --git a/src/main/java/sirius/biz/scripting/ScriptableEvents.java b/src/main/java/sirius/biz/scripting/ScriptableEvents.java index 9fafacfc9..463df1caf 100644 --- a/src/main/java/sirius/biz/scripting/ScriptableEvents.java +++ b/src/main/java/sirius/biz/scripting/ScriptableEvents.java @@ -8,6 +8,7 @@ package sirius.biz.scripting; +import sirius.kernel.commons.Strings; import sirius.kernel.di.std.Part; import sirius.kernel.di.std.Register; import sirius.web.security.ScopeInfo; @@ -53,11 +54,10 @@ public void handleEvent(ScriptableEvent event) { * * @param name the name of the dispatcher to fetch * @return the dispatcher for the current tenant with the given name or a NOOP dispatcher if no such dispatcher - * exists. Note, if an empty name is given, the first available dispatcher for the current tenant is used. - * This way, if exactly one dispatcher is present, it will be used in all import processes etc. + * exists. */ - public ScriptableEventDispatcher fetchDispatcherForCurrentTenant(@Nullable String name) { - if (dispatcherRepository == null) { + public ScriptableEventDispatcher fetchDispatcherForCurrentTenant(String name) { + if (dispatcherRepository == null || Strings.isEmpty(name)) { return NOOP_DISPATCHER; } diff --git a/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java b/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java index 63328bee6..7736fca73 100644 --- a/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java +++ b/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java @@ -28,7 +28,6 @@ import sirius.pasta.noodle.sandbox.SandboxMode; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.util.List; import java.util.Optional; @@ -64,26 +63,13 @@ public List fetchAvailableDispatchers(@Nonnull String tenantId) { } @Override - public Optional fetchDispatcher(@Nonnull String tenantId, @Nullable String name) { - if (Strings.isEmpty(name)) { - List mongoCustomScripts = mango.select(MongoCustomScript.class) - .eq(MongoCustomScript.TENANT, tenantId) - .ne(MongoCustomScript.DISABLED, true) - .limit(2) - .queryList(); - if (mongoCustomScripts.size() == 1) { - return compileAndLoad(mongoCustomScripts.getFirst()); - } else { - return Optional.empty(); - } - } else { - return mango.select(MongoCustomScript.class) - .eq(MongoCustomScript.TENANT, tenantId) - .eq(MongoCustomScript.CODE, name) - .ne(MongoCustomScript.DISABLED, true) - .first() - .flatMap(this::compileAndLoad); - } + public Optional fetchDispatcher(@Nonnull String tenantId, @Nonnull String name) { + return mango.select(MongoCustomScript.class) + .eq(MongoCustomScript.TENANT, tenantId) + .eq(MongoCustomScript.CODE, name) + .ne(MongoCustomScript.DISABLED, true) + .first() + .flatMap(this::compileAndLoad); } private Optional compileAndLoad(MongoCustomScript script) { From cc924a7b9f63834bbef4a3ae5e810b021a23deff Mon Sep 17 00:00:00 2001 From: Idevaldo De Lira Date: Fri, 5 Apr 2024 15:03:10 +0200 Subject: [PATCH 06/11] Uses t:tag to represent the script state Fixes: OX-9839 --- src/main/resources/biz_de.properties | 3 +++ .../templates/biz/scripting/mongo-scripts.html.pasta | 9 +++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/resources/biz_de.properties b/src/main/resources/biz_de.properties index 5f1777973..2b83a67d2 100644 --- a/src/main/resources/biz_de.properties +++ b/src/main/resources/biz_de.properties @@ -672,6 +672,9 @@ MongoCodeListImportJobFactory.description = Importiert eine Codeliste aus einer MongoCodeListImportJobFactory.label = Codeliste importieren MongoCustomScript.code = Code MongoCustomScript.disabled = Deaktiviert +MongoCustomScript.state = Status +MongoCustomScript.state.active = Aktiv +MongoCustomScript.state.inactive = Inaktiv MongoCustomScript.plural = Kunden-Scripte MongoCustomScript.script = Quelltext MongoCustomScript.unnamedScript = Unbenanntes Script diff --git a/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta b/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta index 6aec3f47a..4c3034452 100644 --- a/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta +++ b/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta @@ -21,7 +21,7 @@ @i18n("MongoCustomScript.code") - @i18n("MongoCustomScript.disabled") + @i18n("MongoCustomScript.state") @@ -32,7 +32,12 @@ @script.getCode() - @toUserString(script.isDisabled()) + + @i18n("MongoCustomScript.state.inactive") + + @i18n("MongoCustomScript.state.active") + + Date: Fri, 5 Apr 2024 15:05:01 +0200 Subject: [PATCH 07/11] Apply suggestions from code review Co-authored-by: Jakob Vogel --- .../biz/scripting/mongo/MongoCustomScriptController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java b/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java index d3733e467..b1f5848fe 100644 --- a/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java +++ b/src/main/java/sirius/biz/scripting/mongo/MongoCustomScriptController.java @@ -55,7 +55,7 @@ public void listScripts(WebContext webContext) { * Modifies / manages the given script. * * @param webContext the request to handle - * @param id the id of the script to manage + * @param id the ID of the script to manage */ @Routed("/scripting/scripts/:1") @Permission(ScriptingController.PERMISSION_SCRIPTING) @@ -71,7 +71,7 @@ public void editScript(WebContext webContext, String id) { * Deletes the given script. * * @param webContext the request to handle - * @param id the id of the script to delete + * @param id the ID of the script to delete */ @Routed("/scripting/scripts/:1/delete") @Permission(ScriptingController.PERMISSION_SCRIPTING) From d6189a60e6ea5c7cdcf1d3607eeb25495b0001ab Mon Sep 17 00:00:00 2001 From: Idevaldo De Lira Date: Fri, 5 Apr 2024 15:13:30 +0200 Subject: [PATCH 08/11] Adds the new field to the DB index and changes queries to use $eq instead of $ne. Since the entity is new, there is no need to resave them unless in a few local systems Fixes: OX-9839 --- .../scripting/mongo/MongoCustomEventDispatcherRepository.java | 4 ++-- .../java/sirius/biz/scripting/mongo/MongoCustomScript.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java b/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java index 7736fca73..9ba4bf673 100644 --- a/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java +++ b/src/main/java/sirius/biz/scripting/mongo/MongoCustomEventDispatcherRepository.java @@ -54,7 +54,7 @@ public class MongoCustomEventDispatcherRepository implements ScriptableEventDisp public List fetchAvailableDispatchers(@Nonnull String tenantId) { return mango.select(MongoCustomScript.class) .eq(MongoCustomScript.TENANT, tenantId) - .ne(MongoCustomScript.DISABLED, true) + .eq(MongoCustomScript.DISABLED, false) .orderAsc(MongoCustomScript.CODE) .queryList() .stream() @@ -67,7 +67,7 @@ public Optional fetchDispatcher(@Nonnull String tenan return mango.select(MongoCustomScript.class) .eq(MongoCustomScript.TENANT, tenantId) .eq(MongoCustomScript.CODE, name) - .ne(MongoCustomScript.DISABLED, true) + .eq(MongoCustomScript.DISABLED, false) .first() .flatMap(this::compileAndLoad); } diff --git a/src/main/java/sirius/biz/scripting/mongo/MongoCustomScript.java b/src/main/java/sirius/biz/scripting/mongo/MongoCustomScript.java index f6eb55cb6..cd4afa985 100644 --- a/src/main/java/sirius/biz/scripting/mongo/MongoCustomScript.java +++ b/src/main/java/sirius/biz/scripting/mongo/MongoCustomScript.java @@ -25,7 +25,9 @@ * Stores a custom scripting profile for a tenant. */ @Framework(MongoCustomEventDispatcherRepository.FRAMEWORK_SCRIPTING_MONGO) -@Index(name = "lookup", columns = {"tenant", "code"}, columnSettings = {Mango.INDEX_ASCENDING, Mango.INDEX_ASCENDING}) +@Index(name = "script_lookup", + columns = {"tenant", "disabled", "code"}, + columnSettings = {Mango.INDEX_ASCENDING, Mango.INDEX_ASCENDING, Mango.INDEX_ASCENDING}) public class MongoCustomScript extends MongoTenantAware { /** From cd573d7f183b5e71284f71b5eae7d16c613441eb Mon Sep 17 00:00:00 2001 From: Idevaldo De Lira Date: Fri, 5 Apr 2024 15:52:30 +0200 Subject: [PATCH 09/11] Use cards instead of a table Fixes: OX-9839 --- .../biz/scripting/mongo-scripts.html.pasta | 30 +++++-------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta b/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta index 4c3034452..707defaa1 100644 --- a/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta +++ b/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta @@ -17,37 +17,21 @@

- - - - - - - - + - - - - - + + - -
@i18n("MongoCustomScript.code")@i18n("MongoCustomScript.state") -
- @script.getCode() - + + @i18n("MongoCustomScript.state.inactive") @i18n("MongoCustomScript.state.active") - - -
+
From 62ab65280c1295f2fa72297c049f867913abf224 Mon Sep 17 00:00:00 2001 From: Idevaldo De Lira Date: Fri, 5 Apr 2024 15:58:46 +0200 Subject: [PATCH 10/11] Removes unnecessary divs Fixes: OX-9839 --- .../biz/scripting/mongo-scripts.html.pasta | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta b/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta index 707defaa1..70ec298a4 100644 --- a/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta +++ b/src/main/resources/default/templates/biz/scripting/mongo-scripts.html.pasta @@ -14,26 +14,22 @@ -
-
- - - - - - - @i18n("MongoCustomScript.state.inactive") - - @i18n("MongoCustomScript.state.active") - - - - - - - - -
-
+ + + + + + + @i18n("MongoCustomScript.state.inactive") + + @i18n("MongoCustomScript.state.active") + + + + + + + + From c5b85d238e037c1eb860a9ca6210cc3e1153d3f0 Mon Sep 17 00:00:00 2001 From: Idevaldo De Lira Date: Fri, 5 Apr 2024 18:30:55 +0200 Subject: [PATCH 11/11] Hides the parameter when there are no entries Fixes: OX-9839 --- .../java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java b/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java index 630d42647..22be8673f 100644 --- a/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java +++ b/src/main/java/sirius/biz/jobs/batch/ImportBatchProcessFactory.java @@ -65,7 +65,7 @@ public static Parameter createDispatcherParameter() { return eventDispatchers; }); dispatcherParameter.hideWhen((parameter, context) -> { - return parameter.getValues().size() == 1; + return parameter.getValues().size() < 2; }); return dispatcherParameter.build();