This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v3
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/v3 by this push:
new 6eea6929e51 CAUSEWAY-3950: disables preview for uploaded files (wicket)
6eea6929e51 is described below
commit 6eea6929e51c914a45ff8f811ce0a626af2ac3fc
Author: andi-huber <[email protected]>
AuthorDate: Tue Jan 13 13:28:49 2026 +0100
CAUSEWAY-3950: disables preview for uploaded files (wicket)
---
.../fileinput/FileUploadFieldWithNestingFix.java | 4 +-
.../apache/causeway/viewer/wicket/ui/util/Wkt.java | 48 +++++++++++-----------
2 files changed, 25 insertions(+), 27 deletions(-)
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/fileinput/FileUploadFieldWithNestingFix.java
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/fileinput/FileUploadFieldWithNestingFix.java
index 40727f14867..4aac401b942 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/fileinput/FileUploadFieldWithNestingFix.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/fileinput/FileUploadFieldWithNestingFix.java
@@ -44,7 +44,7 @@ public class FileUploadFieldWithNestingFix extends
BootstrapFileInputField {
private static final HeaderItem headerItem =
WktHeaderItems.forScriptReferenceAsOnDomReady(
FileUploadFieldWithNestingFix.class,
"causeway-file-upload-nesting-fix.nocompress.js");
-
+
private static final CssResourceReference CSS =
new CssResourceReference(FileUploadFieldWithNestingFix.class,
"FileUploadFieldWithNestingFix.css");
@@ -59,7 +59,7 @@ public void renderHead(final IHeaderResponse response) {
response.render(headerItem());
response.render(CssHeaderItem.forReference(CSS));
}
-
+
@Override
public boolean isRequired() {
//FIXME[CAUSEWAY-3203]
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java
index 3bd8340a21a..8e63caf69ac 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java
@@ -199,9 +199,8 @@ public <T extends Component> T attributeReplace(
final @Nullable String attributeName,
final @Nullable String attributeValue) {
if(component==null
- || _Strings.isEmpty(attributeName)) {
+ || _Strings.isEmpty(attributeName))
return component;
- }
if(_Strings.isEmpty(attributeValue)) {
component.add(AttributeModifier.remove(attributeName));
return component;
@@ -269,9 +268,8 @@ private static class
ReplaceDisabledTagWithReadonlyTagBehavior extends Behavior
private static final long serialVersionUID = 1L;
@Override public void onComponentTag(final Component component, final
ComponentTag tag) {
super.onComponentTag(component, tag);
- if(component.isEnabled()) {
+ if(component.isEnabled())
return;
- }
tag.remove("disabled");
tag.put("readonly","readonly");
}
@@ -304,9 +302,8 @@ public Behavior behaviorAddConfirm(
}
public void behaviorAddReplaceDisabledTagWithReadonlyTag(final @Nullable
Component component) {
- if(component==null) {
+ if(component==null)
return;
- }
if
(component.getBehaviors(ReplaceDisabledTagWithReadonlyTagBehavior.class).isEmpty())
{
component.add(new ReplaceDisabledTagWithReadonlyTagBehavior());
}
@@ -320,7 +317,7 @@ public BookmarkablePageLink<Void>
bookmarkablePageLinkWithVisibility(
final PageParameters pageParameters,
final SerializableBooleanSupplier dynamicVisibility) {
- return new BookmarkablePageLink<Void>(
+ return new BookmarkablePageLink<>(
id, pageClass, pageParameters) {
private static final long serialVersionUID = 1L;
@@ -533,9 +530,8 @@ public static AjaxCheckBox checkbox(
*/
private boolean hasMemoizedDataRow(final IModel<Boolean> model) {
if(model instanceof DataRowToggleWkt dataRowToggleWkt) {
- if(dataRowToggleWkt.delegate() instanceof DataRowWkt
dataRowWkt) {
+ if(dataRowToggleWkt.delegate() instanceof DataRowWkt
dataRowWkt)
return dataRowWkt.isTableDataLoaded();
- }
}
return false;
}
@@ -645,7 +641,7 @@ public ResourceLinkVolatile downloadLinkNoCache(final
String id, final IResource
public <T extends Serializable> DropDownChoice<T> dropDownChoice(final
String id,
final IModel<T> model,
final List<? extends T> choices) {
- return new DropDownChoice<T>(id, model, choices);
+ return new DropDownChoice<>(id, model, choices);
}
public <T extends Serializable> DropDownChoice<T>
dropDownChoiceWithAjaxUpdate(final String id,
@@ -673,9 +669,8 @@ public <T extends Serializable> DropDownChoice<T>
dropDownChoiceWithAjaxUpdateAd
*/
public void fileDownloadClickHandler(final IModel<File> model, final
CommonMimeType mime, final String fileName) {
final File file = model.getObject();
- if (file == null) {
+ if (file == null)
throw _Exceptions.illegalState("Failed to retrieve a File object
from model %s", model.getClass().getName());
- }
RequestCycle.get().scheduleRequestHandlerAfterCurrent(
Wkt.fileResourceStreamRequestHandler(file, mime)
.setFileName(fileName)
@@ -715,7 +710,11 @@ public FileUploadField fileUploadField(
.mainClass("input-group-sm")
.initialCaption(initialCaption)
.captionClass("form-control-sm")
- .showUpload(false));
+ .showUpload(false)
+ //[CAUSEWAY-3950] preview may trigger unwanted downloads
of the file that just got uploaded
+ // we were seeing this with Chrome browser and files of
type CSV
+ .showPreview(false)
+ );
return fileUploadField;
}
@@ -801,7 +800,7 @@ public Fragment fragmentAddNoTab(final MarkupContainer
container,
// -- FORM
public static Form<Object> form(final String id) {
- return new Form<Object>(id);
+ return new Form<>(id);
}
public static Form<Object> formAdd(final MarkupContainer container, final
String id) {
@@ -903,7 +902,7 @@ public <T> Label labelAddWithConverter(
public ResourceLink<Void> link(final String id, final BufferedImage
buffImg) {
var imageResource = new BufferedDynamicImageResource();
imageResource.setImage(buffImg);
- return new ResourceLink<Void>(id, imageResource);
+ return new ResourceLink<>(id, imageResource);
}
public AjaxLinkNoPropagate link(final String id, final
SerializableConsumer<AjaxRequestTarget> onClick) {
@@ -950,7 +949,7 @@ public <T> ListView<T> listView(
final String id,
final List<T> list,
final SerializableConsumer<ListItem<T>> itemPopulator) {
- return new ListView<T>(id, list) {
+ return new ListView<>(id, list) {
private static final long serialVersionUID = 1L;
@Override protected void populateItem(final ListItem<T> item) {
itemPopulator.accept(item);
@@ -962,7 +961,7 @@ public <T> ListView<T> listView(
final String id,
final IModel<? extends List<T>> listModel,
final SerializableConsumer<ListItem<T>> itemPopulator) {
- return new ListView<T>(id, listModel) {
+ return new ListView<>(id, listModel) {
private static final long serialVersionUID = 1L;
@Override protected void populateItem(final ListItem<T> item) {
itemPopulator.accept(item);
@@ -1035,7 +1034,7 @@ public <T> Item<T> oddEvenItem(
final String id, final int index, final IModel<T> model,
final SerializableFunction<T, String> cssClassProvider) {
- return new OddEvenItem<T>(id, index, model) {
+ return new OddEvenItem<>(id, index, model) {
private static final long serialVersionUID = 1L;
@Override
@@ -1049,11 +1048,11 @@ protected void onComponentTag(final ComponentTag tag) {
// -- TEXT AREA
public TextArea<String> textArea(final String id, final IModel<String>
textModel) {
- return new TextArea<String>(id, textModel);
+ return new TextArea<>(id, textModel);
}
public TextArea<String> textAreaNoTab(final String id, final
IModel<String> textModel) {
- return new TextArea<String>(id, textModel) {
+ return new TextArea<>(id, textModel) {
private static final long serialVersionUID = 1L;
@Override protected void onComponentTag(final ComponentTag tag) {
super.onComponentTag(tag);
@@ -1075,7 +1074,7 @@ public <T> TextArea<T> textAreaWithConverter(
final @NonNull IModel<T> model,
final @NonNull Class<T> type,
final @NonNull Optional<IConverter<T>> converter) {
- return new TextAreaWithConverter<T>(id, model, type, converter);
+ return new TextAreaWithConverter<>(id, model, type, converter);
}
// -- TEXT FIELD
@@ -1088,7 +1087,7 @@ public <T> TextField<T> textFieldWithConverter(
final @NonNull IModel<T> model,
final @NonNull Class<T> type,
final @NonNull Optional<IConverter<T>> converter) {
- return new TextFieldWithConverter<T>(id, model, type, converter);
+ return new TextFieldWithConverter<>(id, model, type, converter);
}
public <T> TextField<T> passwordFieldWithConverter(
@@ -1096,7 +1095,7 @@ public <T> TextField<T> passwordFieldWithConverter(
final @NonNull IModel<T> model,
final @NonNull Class<T> type,
final @NonNull Optional<IConverter<T>> converter) {
- return new TextFieldWithConverter<T>(id, model, type, converter) {
+ return new TextFieldWithConverter<>(id, model, type, converter) {
private static final long serialVersionUID = 2L;
@Override protected void onComponentTag(final ComponentTag tag) {
Attributes.set(tag, "type", "password");
@@ -1176,9 +1175,8 @@ public boolean errorMessageIgnoringResourceBundles(
final @Nullable FormComponent<?> formComponent,
final @Nullable IValidationError error) {
if(formComponent==null
- || error==null) {
+ || error==null)
return true;
- }
if(error instanceof ValidationError) {
var message = ((ValidationError)error).getMessage();
// use plain error message from ConversionException, circumventing
resource bundles.