You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2020/05/18 10:05:31 UTC
[syncope] branch 2_1_X updated: [SYNCOPE-1560] Proper use of Wicket
model, removing duplicate AjaxFormSubmitBehavior
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/2_1_X by this push:
new 544e2c3 [SYNCOPE-1560] Proper use of Wicket model, removing duplicate AjaxFormSubmitBehavior
544e2c3 is described below
commit 544e2c32c99b70946d32303b567afca130a09307
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Mon May 18 11:49:12 2020 +0200
[SYNCOPE-1560] Proper use of Wicket model, removing duplicate AjaxFormSubmitBehavior
---
.../wicket/markup/html/form/BinaryFieldPanel.java | 23 ++++++++--------
.../console/wizards/CSVPullWizardBuilder.java | 13 +++++----
.../client/console/panels/ImportMetadata.java | 31 +++++-----------------
3 files changed, 23 insertions(+), 44 deletions(-)
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
index cc90a5e..47d7ed0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
@@ -174,34 +174,33 @@ public class BinaryFieldPanel extends FieldPanel<String> {
downloadLink.setOutputMarkupId(true);
uploadForm.add(downloadLink);
+ ListModel<FileUpload> fileUploadModel = new ListModel<>(new ArrayList<>());
FileInputConfig config = new FileInputConfig().
showUpload(false).showRemove(false).showPreview(false);
String language = SyncopeConsoleSession.get().getLocale().getLanguage();
if (!Locale.ENGLISH.getLanguage().equals(language)) {
config.withLocale(language);
}
-
- fileUpload = new BootstrapFileInputField("fileUpload", new ListModel<>(new ArrayList<>()), config);
- fileUpload.setOutputMarkupId(true);
-
+ fileUpload = new BootstrapFileInputField("fileUpload", fileUploadModel, config);
fileUpload.add(new AjaxFormSubmitBehavior(Constants.ON_CHANGE) {
private static final long serialVersionUID = -1107858522700306810L;
@Override
protected void onSubmit(final AjaxRequestTarget target) {
- FileUpload uploadedFile = fileUpload.getFileUpload();
- if (uploadedFile != null) {
- if (maxUploadSize != null && uploadedFile.getSize() > maxUploadSize.bytes()) {
+ if (!fileUploadModel.getObject().isEmpty()) {
+ FileUpload uploaded = fileUploadModel.getObject().get(0);
+
+ if (maxUploadSize != null && uploaded.getSize() > maxUploadSize.bytes()) {
// SYNCOPE-1213 manage directly max upload file size (if set in properties file)
SyncopeConsoleSession.get().error(getString("tooLargeFile").
replace("${maxUploadSizeB}", String.valueOf(maxUploadSize.bytes())).
replace("${maxUploadSizeMB}", String.valueOf(maxUploadSize.bytes() / 1000000L)));
((BasePage) getPageReference().getPage()).getNotificationPanel().refresh(target);
} else {
- byte[] uploadedBytes = uploadedFile.getBytes();
- String uploaded = Base64.getEncoder().encodeToString(uploadedBytes);
- field.setModelObject(uploaded);
+ byte[] uploadedBytes = uploaded.getBytes();
+ String uploadedEncoded = Base64.getEncoder().encodeToString(uploadedBytes);
+ field.setModelObject(uploadedEncoded);
target.add(field);
if (previewer == null) {
@@ -213,8 +212,8 @@ public class BinaryFieldPanel extends FieldPanel<String> {
uploadForm.addOrReplace(fileUpload);
}
- setVisibleFileButtons(StringUtils.isNotBlank(uploaded));
- downloadLink.setEnabled(StringUtils.isNotBlank(uploaded));
+ setVisibleFileButtons(StringUtils.isNotBlank(uploadedEncoded));
+ downloadLink.setEnabled(StringUtils.isNotBlank(uploadedEncoded));
target.add(uploadForm);
}
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPullWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPullWizardBuilder.java
index 3817e43..98bf149 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPullWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPullWizardBuilder.java
@@ -132,24 +132,23 @@ public class CSVPullWizardBuilder extends AjaxWizardBuilder<CSVPullSpec> {
private static final long serialVersionUID = -4736870165235853919L;
public Details(final CSVPullSpec spec) {
+ ListModel<FileUpload> fileUploadModel = new ListModel<>(new ArrayList<>());
FileInputConfig csvFile = new FileInputConfig().
showUpload(false).showRemove(false).showPreview(false);
String language = SyncopeConsoleSession.get().getLocale().getLanguage();
if (!Locale.ENGLISH.getLanguage().equals(language)) {
csvFile.withLocale(language);
}
- BootstrapFileInputField csvUpload =
- new BootstrapFileInputField("csvUpload", new ListModel<>(new ArrayList<>()), csvFile);
- csvUpload.setRequired(true);
- csvUpload.setOutputMarkupId(true);
+ BootstrapFileInputField csvUpload = new BootstrapFileInputField("csvUpload", fileUploadModel, csvFile);
csvUpload.add(new AjaxFormSubmitBehavior(Constants.ON_CHANGE) {
private static final long serialVersionUID = 5538299138211283825L;
@Override
protected void onSubmit(final AjaxRequestTarget target) {
- FileUpload uploadedFile = csvUpload.getFileUpload();
- if (uploadedFile != null) {
+ if (!fileUploadModel.getObject().isEmpty()) {
+ FileUpload uploadedFile = fileUploadModel.getObject().get(0);
+
if (maxUploadSize != null && uploadedFile.getSize() > maxUploadSize.bytes()) {
SyncopeConsoleSession.get().error(getString("tooLargeFile").
replace("${maxUploadSizeB}", String.valueOf(maxUploadSize.bytes())).
@@ -161,7 +160,7 @@ public class CSVPullWizardBuilder extends AjaxWizardBuilder<CSVPullSpec> {
}
}
});
- add(csvUpload);
+ add(csvUpload.setRequired(true).setOutputMarkupId(true));
add(new CSVConfPanel("csvconf", spec));
}
diff --git a/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/ImportMetadata.java b/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/ImportMetadata.java
index e5cdd86..856f269 100644
--- a/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/ImportMetadata.java
+++ b/ext/saml2sp/client-console/src/main/java/org/apache/syncope/client/console/panels/ImportMetadata.java
@@ -20,23 +20,19 @@ package org.apache.syncope.client.console.panels;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.fileinput.BootstrapFileInputField;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.fileinput.FileInputConfig;
-import java.io.ByteArrayInputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Locale;
-import org.apache.commons.lang3.ArrayUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.pages.BasePage;
import org.apache.syncope.client.console.rest.SAML2IdPsRestClient;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.upload.FileUpload;
-import org.apache.wicket.model.Model;
import org.apache.wicket.model.util.ListModel;
public class ImportMetadata extends TogglePanel<Serializable> {
@@ -51,30 +47,15 @@ public class ImportMetadata extends TogglePanel<Serializable> {
Form<?> form = new Form<>("metadataForm");
addInnerObject(form);
- Model<byte[]> metadata = new Model<>();
-
+ ListModel<FileUpload> fileUploadModel = new ListModel<>(new ArrayList<>());
FileInputConfig config = new FileInputConfig().
showUpload(false).showRemove(false).showPreview(false);
String language = SyncopeConsoleSession.get().getLocale().getLanguage();
if (!Locale.ENGLISH.getLanguage().equals(language)) {
config.withLocale(language);
}
- BootstrapFileInputField fileUpload =
- new BootstrapFileInputField("fileUpload", new ListModel<>(new ArrayList<>()), config);
- fileUpload.setOutputMarkupId(true);
- fileUpload.add(new AjaxFormSubmitBehavior(Constants.ON_CHANGE) {
-
- private static final long serialVersionUID = 5538299138211283825L;
-
- @Override
- protected void onSubmit(final AjaxRequestTarget target) {
- FileUpload uploadedFile = fileUpload.getFileUpload();
- if (uploadedFile != null) {
- metadata.setObject(uploadedFile.getBytes());
- }
- }
- });
- form.add(fileUpload);
+ BootstrapFileInputField fileUpload = new BootstrapFileInputField("fileUpload", fileUploadModel, config);
+ form.add(fileUpload.setOutputMarkupId(true));
form.add(new AjaxSubmitLink("doUpload", form) {
@@ -82,10 +63,10 @@ public class ImportMetadata extends TogglePanel<Serializable> {
@Override
protected void onSubmit(final AjaxRequestTarget target) {
- if (ArrayUtils.isNotEmpty(metadata.getObject())) {
+ if (!fileUploadModel.getObject().isEmpty()) {
+ FileUpload uploaded = fileUploadModel.getObject().get(0);
try {
- restClient.importIdPs(new ByteArrayInputStream(metadata.getObject()));
- metadata.setObject(null);
+ restClient.importIdPs(uploaded.getInputStream());
SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
toggle(target, false);