Skip to content

Commit

Permalink
started with saved searches
Browse files Browse the repository at this point in the history
  • Loading branch information
Kateryna Honchar committed Apr 20, 2022
1 parent 0a6be19 commit e3962c7
Show file tree
Hide file tree
Showing 4 changed files with 187 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
~ Copyright (c) 2022 Evolveum
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->
<html xmlns:wicket="http://wicket.apache.org">
<head/>
<body>
<wicket:panel>
<div>
<div class="pull-left">
<label>
<wicket:message key="SaveSearchPanel.enterSearchNameLabel"/>
</label>
</div>
<input type="text" class="pull-right form-control input-sm" wicket:id="searchName"/>
</div>
<div wicket:id="buttonsPanel" class="box-footer pull-right">
<a wicket:id="saveButton" class="btn btn-group btn-sm btn-default"></a>
<a wicket:id="cancelButton" class="btn btn-group btn-sm btn-default"></a>
</div>
</wicket:panel>
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
/*
* Copyright (c) 2022 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.gui.impl.component.search;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.prism.Containerable;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.dialog.Popupable;

import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.certification.dto.CertDefinitionDto;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.model.StringResourceModel;

public class SaveSearchPanel<C extends Containerable> extends BasePanel<Search<C>> implements Popupable {

private static final long serialVersionUID = 1L;

private static final String ID_SEARCH_NAME = "searchName";
private static final String ID_BUTTONS_PANEL = "buttonsPanel";
private static final String ID_SAVE_BUTTON = "saveButton";
private static final String ID_CANCEL_BUTTON = "cancelButton";

public SaveSearchPanel(String id, IModel<Search<C>> searchModel) {
super(id, searchModel);
}

@Override
protected void onInitialize() {
super.onInitialize();
initLayout();
}

private void initLayout() {
TextField<String> nameField = new TextField(ID_SEARCH_NAME);
nameField.setOutputMarkupId(true);
add(nameField);

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

AjaxButton saveButton = new AjaxButton(ID_SAVE_BUTTON, createStringResource("PageBase.button.save")) {
@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {

}
};
buttonsPanel.add(saveButton);

AjaxButton cancelButton = new AjaxButton(ID_CANCEL_BUTTON, createStringResource("Button.cancel")) {
@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {

}
};
buttonsPanel.add(cancelButton);
}

@Override
public int getWidth() {
return 500;
}

@Override
public int getHeight() {
return 400;
}

@Override
public String getWidthUnit(){
return "px";
}

@Override
public String getHeightUnit(){
return "px";
}

@Override
public Component getComponent() {
return this;
}

@Override
public StringResourceModel getTitle() {
return getPageBase().createStringResource("SaveSearchPanel.saveSearch");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

<div class="pull-left" wicket:id="searchItemsPanel"></div>

<div class="form-group pull-right" style="vertical-align: top; padding-right: 5px;" wicket:id="searchContainer">
<div class="form-group" style="vertical-align: top; padding-right: 5px;" wicket:id="searchContainer">
<div class="btn-group btn-group-sm">
<button type="button" class="btn btn-primary" about="searchSimple" wicket:id="submitSearchButton">
<i class="fa fa-search flip-icon fa-lg"></i>
Expand All @@ -29,6 +29,23 @@
</ul>
</div>
</div>
<div class="form-group pull-right" style="vertical-align: top; padding-right: 5px;" wicket:id="saveSearchContainer">
<div class="btn-group btn-group-sm">
<button type="button" class="btn btn-primary" wicket:id="saveSearchButton">
<i class="fa fa-save flip-icon fa-lg"></i>
</button>
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" wicket:id="savedSearchMenu">
<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</button>
<ul class="dropdown-menu pull-right" role="menu">
<li wicket:id="savedSearchItems">
<div wicket:id="savedSearchItem"/>
</li>
</ul>
</div>
</div>
</div>
</form>
<wicket:fragment wicket:id="basicSearchFragment">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@ public abstract class SearchPanel<C extends Containerable> extends BasePanel<Sea
private static final String ID_SEARCH_TYPES_MENU = "searchTypesMenu";
private static final String ID_SEARCH_TYPE_ITEMS = "searchTypeItems";
private static final String ID_SEARCH_TYPE = "searchType";
private static final String ID_SAVE_SEARCH_CONTAINER = "saveSearchContainer";
private static final String ID_SAVE_SEARCH_BUTTON = "saveSearchButton";
private static final String ID_SAVED_SEARCH_MENU = "savedSearchMenu";
private static final String ID_SAVED_SEARCH_ITEMS = "savedSearchItems";
private static final String ID_SAVED_SEARCH_ITEM = "savedSearchItem";
private static final String ID_BASIC_SEARCH_FRAGMENT = "basicSearchFragment";
private static final String ID_ADVANCED_SEARCH_FRAGMENT = "advancedSearchFragment";
private static final String ID_FULLTEXT_SEARCH_FRAGMENT = "fulltextSearchFragment";
Expand Down Expand Up @@ -245,6 +250,44 @@ public boolean isVisible() {
};
searchContainer.add(li);

WebMarkupContainer saveSearchContainer = new WebMarkupContainer(ID_SAVE_SEARCH_CONTAINER);
saveSearchContainer.setOutputMarkupId(true);
form.add(saveSearchContainer);
AjaxButton saveSearchButton = new AjaxButton(ID_SAVE_SEARCH_BUTTON) {

private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
SaveSearchPanel panel = new SaveSearchPanel(getPageBase().getMainPopupBodyId(), SearchPanel.this.getModel());
getPageBase().showMainPopup(panel, target);
}
};
saveSearchButton.setOutputMarkupId(true);
saveSearchContainer.add(saveSearchButton);

WebMarkupContainer savedSearchMenu = new WebMarkupContainer(ID_SAVED_SEARCH_MENU);
saveSearchContainer.add(savedSearchMenu);

ListView<InlineMenuItem> savedSearchItems = new ListView<InlineMenuItem>(ID_SAVED_SEARCH_ITEMS, new ArrayList<>()) {

private static final long serialVersionUID = 1L;

@Override
protected void populateItem(ListItem<InlineMenuItem> item) {
WebMarkupContainer menuItemBody = new MenuLinkPanel(ID_SAVED_SEARCH_ITEM, item.getModel());
menuItemBody.setRenderBodyOnly(true);
item.add(menuItemBody);
menuItemBody.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return Boolean.TRUE.equals(item.getModelObject().getVisible().getObject());
}
});
}
};
saveSearchContainer.add(savedSearchItems);

}

protected void initSearchItemsPanel(RepeatingView searchItemsRepeatingView) {
Expand Down

0 comments on commit e3962c7

Please sign in to comment.