Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
semancik committed Aug 28, 2018
2 parents f591b21 + b7156cb commit 59ec9cc
Show file tree
Hide file tree
Showing 92 changed files with 8,740 additions and 2,889 deletions.
2 changes: 1 addition & 1 deletion gui/admin-gui/pom.xml
Expand Up @@ -110,7 +110,7 @@
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<configuration>
<!-- <fork>true</fork> -->
<fork>true</fork>
<skip>false</skip>
<jvmArguments>-Dserver.port=${server.port} -Dmidpoint.home=${midpoint.home} -Dmidpoint.schrodinger=${midpoint.schrodinger} -Djavax.net.ssl.trustStore=${javax.net.ssl.trustStore} -Djavax.net.ssl.trustStoreType=${javax.net.ssl.trustStoreType}</jvmArguments><!-- TODO question: CAN this argument be active by default, or should be there a different profile defined for this? -->
</configuration>
Expand Down
Expand Up @@ -142,6 +142,7 @@ public class GuiStyleConstants {
public static final String CLASS_RESUME_MENU_ITEM = "fa fa-check-square";
public static final String CLASS_STOP_MENU_ITEM = "fa fa-stop";
public static final String CLASS_START_MENU_ITEM = "fa fa-play";
public static final String CLASS_IMPORT_MENU_ITEM = "fa fa-download";

public static final String CLASS_BUTTON_TOGGLE_OFF = "btn-default";
public static final String CLASS_BUTTON_TOGGLE_ON = "btn-info";
Expand Down
Expand Up @@ -24,7 +24,9 @@
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.util.ObjectTypeUtil;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.web.component.data.column.InlineMenuButtonColumn;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.Component;
Expand Down Expand Up @@ -188,6 +190,13 @@ private BoxedTablePanel<SelectableBean<O>> createTable() {
} else {
columns = initColumns();
}
List<InlineMenuItem> menuItems = createInlineMenu();
getCustomActions(menuItems);

if (menuItems != null && menuItems.size() > 0) {
InlineMenuButtonColumn<SelectableBean<O>> actionsColumn = new InlineMenuButtonColumn<>(menuItems, parentPage);
columns.add(actionsColumn);
}

BaseSortableDataProvider<SelectableBean<O>> provider = initProvider();

Expand Down Expand Up @@ -247,10 +256,6 @@ protected List<IColumn<SelectableBean<O>, String>> initCustomColumns() {
columns.add(iconColumn);

columns.addAll(getCustomColumnsTransformed(customColumns));
IColumn<SelectableBean<O>, String> actionsColumn = createActionsColumn();
if (actionsColumn != null){
columns.add(actionsColumn);
}
LOGGER.trace("Finished to init custom columns, created columns {}", columns);
return columns;
}
Expand Down Expand Up @@ -365,10 +370,6 @@ protected List<IColumn<SelectableBean<O>, String>> initColumns() {

List<IColumn<SelectableBean<O>, String>> others = createColumns();
columns.addAll(others);
IColumn<SelectableBean<O>, String> actionsColumn = createActionsColumn();
if (actionsColumn != null) {
columns.add(createActionsColumn());
}
LOGGER.trace("Finished to init columns, created columns {}", columns);
return columns;
}
Expand All @@ -393,6 +394,7 @@ protected void saveProviderPaging(ObjectQuery query, ObjectPaging paging) {
@Override
public SelectableBean<O> createDataObjectWrapper(O obj) {
SelectableBean<O> bean = super.createDataObjectWrapper(obj);

List<InlineMenuItem> inlineMenu = createInlineMenu();
if (inlineMenu != null) {
bean.getMenuItems().addAll(inlineMenu);
Expand Down Expand Up @@ -606,18 +608,32 @@ public StringResourceModel createStringResource(String resourceKey, Object... ob

protected abstract List<IColumn<SelectableBean<O>, String>> createColumns();

protected IColumn<SelectableBean<O>, String> createActionsColumn(){
return null;
}

protected abstract List<InlineMenuItem> createInlineMenu();

protected void getCustomActions(List<InlineMenuItem> actionsList){
GuiObjectListViewType guiObjectListViewType = getGuiObjectListViewType();
if (guiObjectListViewType != null && guiObjectListViewType.getAction() != null &&
guiObjectListViewType.getAction().size() > 0){
if (actionsList == null){
actionsList = new ArrayList<>();
}
List<InlineMenuItem> customActions = WebComponentUtil.createMenuItemsFromActions(guiObjectListViewType.getAction());
if (customActions != null) {
actionsList.addAll(customActions);
}
}
}

public void addPerformed(AjaxRequestTarget target, List<O> selected) {
parentPage.hideMainPopup(target);
}

private List<GuiObjectColumnType> getGuiObjectColumnTypeList(){
GuiObjectListViewType guiObjectListViewType = getGuiObjectListViewType();
return guiObjectListViewType != null ? guiObjectListViewType.getColumn() : null;
}

private GuiObjectListViewType getGuiObjectListViewType(){
AdminGuiConfigurationType adminGuiConfig = parentPage.getPrincipal().getAdminGuiConfiguration();
if (adminGuiConfig != null && adminGuiConfig.getObjectLists() != null &&
adminGuiConfig.getObjectLists().getObjectList() != null){
Expand All @@ -626,7 +642,7 @@ private List<GuiObjectColumnType> getGuiObjectColumnTypeList(){
!type.getClassDefinition().getSimpleName().equals(object.getType().getLocalPart())){
continue;
}
return object.getColumn();
return object;
}
}
return null;
Expand Down
Expand Up @@ -143,6 +143,11 @@ protected List<InlineMenuItem> createInlineMenu() {
return null;
}

@Override
protected void getCustomActions(List<InlineMenuItem> actionsList){
}


protected void onUpdateCheckbox(AjaxRequestTarget target){

}
Expand Down
Expand Up @@ -17,12 +17,17 @@

import java.io.Serializable;

import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

import com.evolveum.midpoint.gui.api.component.BasePanel;
Expand Down Expand Up @@ -53,49 +58,49 @@ public DropdownButtonPanel(String id, DropdownButtonDto model) {
initLayout(model);
}

private void initLayout(DropdownButtonDto model) {
private void initLayout(DropdownButtonDto dropdownButtonDto) {
WebMarkupContainer buttonContainer = new WebMarkupContainer(ID_BUTTON_CONTAINER);
buttonContainer.setOutputMarkupId(true);
buttonContainer.add(AttributeAppender.append("class", getSpecialButtonClass()));
add(buttonContainer);

Label info = new Label(ID_INFO, model.getInfo());
Label info = new Label(ID_INFO, dropdownButtonDto.getInfo());
info.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return model.getInfo() != null;
return dropdownButtonDto.getInfo() != null;
}
});
buttonContainer.add(info);

Label label = new Label(ID_LABEL, model.getLabel());
Label label = new Label(ID_LABEL, dropdownButtonDto.getLabel());
label.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return model.getLabel() != null;
return dropdownButtonDto.getLabel() != null;
}
});
buttonContainer.add(label);

WebMarkupContainer icon = new WebMarkupContainer(ID_ICON);
icon.add(AttributeModifier.append("class", model.getIcon()));
icon.add(AttributeModifier.append("class", dropdownButtonDto.getIcon()));
icon.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return model.getIcon() != null;
return dropdownButtonDto.getIcon() != null;
}
});
buttonContainer.add(icon);

ListView<InlineMenuItem> li = new ListView<InlineMenuItem>(ID_MENU_ITEM, new Model((Serializable) model.getMenuItems())) {
ListView<InlineMenuItem> li = new ListView<InlineMenuItem>(ID_MENU_ITEM, Model.ofList(dropdownButtonDto.getMenuItems())) {
private static final long serialVersionUID = 1L;

@Override
protected void populateItem(ListItem<InlineMenuItem> item) {
initMenuItem(item);
initMenuItem(item);
}
};

Expand All @@ -107,9 +112,8 @@ public WebMarkupContainer getButtonContainer() {
}

private void initMenuItem(ListItem<InlineMenuItem> menuItem) {
final InlineMenuItem item = menuItem.getModelObject();

WebMarkupContainer menuItemBody = new MenuLinkPanel(ID_MENU_ITEM_BODY, menuItem.getModel());
MenuLinkPanel menuItemBody = new MenuLinkPanel(ID_MENU_ITEM_BODY, menuItem.getModel());
menuItemBody.add(new VisibleBehaviour(() -> menuItem.getModelObject().getVisible().getObject()));
menuItemBody.setRenderBodyOnly(true);
menuItem.add(menuItemBody);
}
Expand Down
Expand Up @@ -30,6 +30,7 @@
import com.evolveum.midpoint.gui.api.util.ModelServiceLocator;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.page.admin.configuration.component.SystemConfigPanelNew;
import com.evolveum.midpoint.model.api.*;
import com.evolveum.midpoint.model.api.expr.MidpointFunctions;
import com.evolveum.midpoint.model.api.validator.ResourceValidator;
Expand Down Expand Up @@ -1490,6 +1491,19 @@ protected List<SideBarMenuItem> createMenuItems() {

return menus;
}

// private MainMenuItem createSystemConfigurationItems() {
// MainMenuItem item = new MainMenuItem(GuiStyleConstants.CLASS_SYSTEM_CONFIGURATION_ICON_COLORED,
// createStringResource("PageAdmin.menu.top.configuration.basic.new"), PageSystemConfigurationNew.class);
//
// addMenuItem(item, "PageAdmin.menu.top.configuration.basic", SystemConfigPanelNew.class);
// addMenuItem(item, "PageAdmin.menu.top.configuration.objectPolicy", PageUsers.class);
// addMenuItem(item, "PageAdmin.menu.top.users.list", PageUsers.class);
//
// addUsersViewMenuItems(item.getItems());
//
// return item;
// }

private void createConfigurationMenu(SideBarMenuItem item) {
addMainMenuItem(item, "fa fa-bullseye", "PageAdmin.menu.top.configuration.bulkActions", PageBulkAction.class);
Expand All @@ -1503,7 +1517,7 @@ private void createConfigurationMenu(SideBarMenuItem item) {
PageDebugView.class, null, createVisibleDisabledBehaviorForEditMenu(PageDebugView.class));
debugs.getItems().add(menu);

MainMenuItem systemItemNew = addMainMenuItem(item, "fa fa-cog", "PageAdmin.menu.top.configuration.basic.new", PageSystemConfigurationNew.class);
MainMenuItem systemItemNew = addMainMenuItem(item, "fa fa-cog", "PageAdmin.menu.top.configuration.basic.new", null);

addSystemMenuItemNew(systemItemNew, "PageAdmin.menu.top.configuration.basic",
PageSystemConfigurationNew.CONFIGURATION_TAB_BASIC);
Expand Down Expand Up @@ -1590,7 +1604,7 @@ public boolean isMenuActive(WebPage page) {
return false;
}

int index = getSelectedTabForConfiguration(page);
int index = getSelectedTabForNewConfiguration(page);
return tabIndex == index ? true : false;
}
};
Expand Down Expand Up @@ -1747,6 +1761,17 @@ private int getSelectedTabForConfiguration(WebPage page) {

return StringUtils.isNumeric(value) ? Integer.parseInt(value) : PageSystemConfiguration.CONFIGURATION_TAB_BASIC;
}

private int getSelectedTabForNewConfiguration(WebPage page) {
PageParameters params = page.getPageParameters();
StringValue val = params.get(PageSystemConfigurationNew.SELECTED_TAB_INDEX);
String value = null;
if (val != null && !val.isNull()) {
value = val.toString();
}

return StringUtils.isNumeric(value) ? Integer.parseInt(value) : PageSystemConfigurationNew.CONFIGURATION_TAB_BASIC;
}

private void createSelfServiceMenu(SideBarMenuItem menu) {
addMainMenuItem(menu, GuiStyleConstants.CLASS_ICON_DASHBOARD, "PageAdmin.menu.selfDashboard",
Expand Down
Expand Up @@ -58,6 +58,8 @@
import com.evolveum.midpoint.util.*;
import com.evolveum.midpoint.util.exception.ObjectNotFoundException;
import com.evolveum.midpoint.web.component.data.SelectableBeanObjectDataProvider;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction;
import com.evolveum.midpoint.web.component.prism.*;
import com.evolveum.midpoint.web.util.ObjectTypeGuiDescriptor;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
Expand Down Expand Up @@ -2629,4 +2631,31 @@ public static LookupTableType createAppenderChoices(PageBase pageBase) {
}
return lookupTable;
}

public static List<InlineMenuItem> createMenuItemsFromActions(List<GuiActionType> actions){
List<InlineMenuItem> menuItems = new ArrayList<>();
if (actions == null || actions.size() == 0){
return menuItems;
}
actions.forEach(action -> {
String label = action.getDisplay() != null && StringUtils.isNotEmpty(action.getDisplay().getLabel()) ?
action.getDisplay().getLabel() : action.getName();
new InlineMenuItem(Model.of(label)){
private static final long serialVersionUID = 1L;

@Override
public InlineMenuItemAction initAction(){
return new InlineMenuItemAction() {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
//TODO run task from action
}
};
}
};
});
return menuItems;
}
}

0 comments on commit 59ec9cc

Please sign in to comment.