Skip to content

Commit

Permalink
MID-8169 fix <Enter> when saving a filter does nothing
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Oct 11, 2022
1 parent 8033eb8 commit c5ea764
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,19 @@
<head/>
<body>
<wicket:panel>
<div wicket:id="feedbackMessage"/>
<div class="form-group">
<label class="col-form-label"><wicket:message key="SaveSearchPanel.enterSearchNameLabel"/></label>
<input type="text" class="pull-right form-control form-control-sm" wicket:id="searchName"/>
</div>
<div wicket:id="buttonsPanel" class="main-button-bar justify-content-end">
<a wicket:id="saveButton" class="btn btn-group btn-sm btn-default"/>
<a wicket:id="cancelButton" class="btn btn-group btn-sm btn-default"/>
</div>
<form wicket:id="saveSearchForm">
<div wicket:id="feedbackMessage"/>
<div class="form-group">
<label class="col-form-label">
<wicket:message key="SaveSearchPanel.enterSearchNameLabel"/>
</label>
<input type="text" class="pull-right form-control form-control-sm" wicket:id="searchName"/>
</div>
<div wicket:id="buttonsPanel" class="main-button-bar justify-content-end">
<a wicket:id="saveButton" class="btn btn-group btn-sm btn-default"/>
<a wicket:id="cancelButton" class="btn btn-group btn-sm btn-default"/>
</div>
</form>
</wicket:panel>
</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
import java.util.ArrayList;
import java.util.List;

import com.evolveum.midpoint.web.component.AjaxSubmitButton;
import com.evolveum.midpoint.web.component.form.MidpointForm;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.Component;
Expand Down Expand Up @@ -47,6 +50,7 @@ public class SaveSearchPanel<C extends Containerable> extends BasePanel<Search<C

private static final Trace LOGGER = TraceManager.getTrace(SaveSearchPanel.class);
private static final String ID_FEEDBACK_MESSAGE = "feedbackMessage";
private static final String ID_SAVE_SEARCH_FORM = "saveSearchForm";
private static final String ID_SEARCH_NAME = "searchName";
private static final String ID_BUTTONS_PANEL = "buttonsPanel";
private static final String ID_SAVE_BUTTON = "saveButton";
Expand All @@ -72,25 +76,29 @@ protected void onInitialize() {
private void initLayout() {
setOutputMarkupId(true);

MidpointForm form = new MidpointForm(ID_SAVE_SEARCH_FORM);
form.setOutputMarkupId(true);
add(form);

MessagePanel<?> feedbackMessage = new MessagePanel<>(ID_FEEDBACK_MESSAGE, MessagePanel.MessagePanelType.WARN, feedbackMessageModel);
feedbackMessage.add(new VisibleBehaviour(() -> feedbackMessageModel.getObject() != null && StringUtils.isNotEmpty(feedbackMessageModel.getObject())));
feedbackMessage.setOutputMarkupId(true);
add(feedbackMessage);
form.add(feedbackMessage);

TextField<String> nameField = new TextField<>(ID_SEARCH_NAME, queryNameModel);
nameField.add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
nameField.setOutputMarkupId(true);
add(nameField);
form.add(nameField);

WebMarkupContainer buttonsPanel = new WebMarkupContainer(ID_BUTTONS_PANEL);
buttonsPanel.setOutputMarkupId(true);
add(buttonsPanel);
form.add(buttonsPanel);

AjaxButton saveButton = new AjaxButton(ID_SAVE_BUTTON, createStringResource("PageBase.button.save")) {
AjaxSubmitButton saveButton = new AjaxSubmitButton(ID_SAVE_BUTTON, createStringResource("PageBase.button.save")) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {
public void onSubmit(AjaxRequestTarget ajaxRequestTarget) {
if (StringUtils.isEmpty(queryNameModel.getObject())) {
feedbackMessageModel = createStringResource("SaveSearchPanel.enterQueryNameWarning");
ajaxRequestTarget.add(feedbackMessage);
Expand All @@ -103,6 +111,7 @@ public void onClick(AjaxRequestTarget ajaxRequestTarget) {
};
saveButton.setOutputMarkupId(true);
buttonsPanel.add(saveButton);
form.setDefaultButton(saveButton);

AjaxButton cancelButton = new AjaxButton(ID_CANCEL_BUTTON, createStringResource("Button.cancel")) {
@Override
Expand Down

0 comments on commit c5ea764

Please sign in to comment.