diff --git a/build-system/pom.xml b/build-system/pom.xml index 7aa63316247..221fa110309 100644 --- a/build-system/pom.xml +++ b/build-system/pom.xml @@ -1396,6 +1396,9 @@ org.testng:testng commons-lang:commons-lang + + org.aspectj:aspectjweaver + xml-apis:xml-apis stax:stax-api diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java index fc02bc7a5ef..9287c9f07bb 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java @@ -33,7 +33,7 @@ public class GuiStyleConstants { public static final String STYLES_OBJECT_SERVICE_ICON = "fa fa-cloud"; public static final String STYLES_OBJECT_SERVICE_ICON_COLORED = STYLES_OBJECT_SERVICE_ICON + " object-service-color"; - public static final String STYLES_OBJECT_RESOURCE_ICON = "fa fa-laptop"; + public static final String STYLES_OBJECT_RESOURCE_ICON = "fa fa-database"; public static final String STYLES_OBJECT_RESOURCE_ICON_COLORED = STYLES_OBJECT_RESOURCE_ICON + " object-resource-color"; public static final String STYLES_OBJECT_TASK_ICON = "fa fa-tasks"; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java index ee8f9d10775..e497c99859c 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2016 Evolveum + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.evolveum.midpoint.gui.api.component; import java.util.Collection; @@ -21,8 +36,10 @@ import com.evolveum.midpoint.web.page.admin.configuration.PageImportObject; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; +/** + * @author katkav + */ public abstract class MainObjectListPanel extends ObjectListPanel { - private static final long serialVersionUID = 1L; private static final String ID_REFRESH = "refresh"; @@ -42,7 +59,7 @@ protected void onClickPerformed(AjaxRequestTarget target) { }; add(refreshIcon); -LinkIconPanel newObjectIcon = new LinkIconPanel(ID_NEW_OBJECT, new Model("fa fa-edit")){ + LinkIconPanel newObjectIcon = new LinkIconPanel(ID_NEW_OBJECT, new Model("fa fa-edit")){ @Override protected void onClickPerformed(AjaxRequestTarget target) { @@ -51,7 +68,7 @@ protected void onClickPerformed(AjaxRequestTarget target) { }; add(newObjectIcon); -LinkIconPanel importObject = new LinkIconPanel(ID_IMPORT_OBJECT, new Model("fa fa-download")){ + LinkIconPanel importObject = new LinkIconPanel(ID_IMPORT_OBJECT, new Model("fa fa-download")){ @Override protected void onClickPerformed(AjaxRequestTarget target) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java index 4a067f7abe9..bc18aaf8718 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java @@ -49,6 +49,12 @@ import com.evolveum.midpoint.web.component.search.SearchFormPanel; import com.evolveum.midpoint.web.component.util.ListDataProvider2; import com.evolveum.midpoint.web.component.util.SelectableBean; +import com.evolveum.midpoint.web.page.admin.reports.PageReports; +import com.evolveum.midpoint.web.page.admin.resources.PageResources; +import com.evolveum.midpoint.web.page.admin.roles.PageRoles; +import com.evolveum.midpoint.web.page.admin.services.PageService; +import com.evolveum.midpoint.web.page.admin.services.PageServices; +import com.evolveum.midpoint.web.page.admin.users.PageUsers; import com.evolveum.midpoint.web.session.PageStorage; import com.evolveum.midpoint.web.session.SessionStorage; import com.evolveum.midpoint.web.session.UserProfileStorage.TableId; @@ -58,12 +64,12 @@ import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; +/** + * @author katkav + */ public abstract class ObjectListPanel extends BasePanel { - - /** - * - */ private static final long serialVersionUID = 1L; + // private static final String ID_SEARCH_FORM = "searchForm"; private static final String ID_MAIN_FORM = "mainForm"; private static final String ID_BUTTON_CANCEL = "cancelButton"; @@ -95,10 +101,11 @@ public Class getType() { static { storageMap = new HashMap(); - storageMap.put(UserType.class, SessionStorage.KEY_USERS); - storageMap.put(ResourceType.class, SessionStorage.KEY_RESOURCES); - storageMap.put(ReportType.class, SessionStorage.KEY_REPORTS); - storageMap.put(RoleType.class, SessionStorage.KEY_ROLES); + storageMap.put(PageUsers.class, SessionStorage.KEY_USERS); + storageMap.put(PageResources.class, SessionStorage.KEY_RESOURCES); + storageMap.put(PageReports.class, SessionStorage.KEY_REPORTS); + storageMap.put(PageRoles.class, SessionStorage.KEY_ROLES); + storageMap.put(PageServices.class, SessionStorage.KEY_SERVICES); // storageMap.put(ObjectType.class, SessionStorage.KEY_CONFIGURATION); // storageMap.put(FocusType.class, SessionStorage.KEY_ROLE_MEMBERS); @@ -159,7 +166,7 @@ private void initLayout() { @Override public Search load() { - String storageKey = storageMap.get(type); + String storageKey = getStorageKey();//storageMap.get(parentPage.getClass()); Search search = null; if (StringUtils.isNotEmpty(storageKey)) { PageStorage storage = getSession().getSessionStorage().getPageStorageMap() @@ -189,7 +196,7 @@ protected BaseSortableDataProvider> getProvider() { parentPage, type) { @Override protected void saveProviderPaging(ObjectQuery query, ObjectPaging paging) { - String storageKey = storageMap.get(type); + String storageKey = getStorageKey();//storageMap.get(type); if (StringUtils.isNotEmpty(storageKey)) { PageStorage storage = getSession().getSessionStorage().getPageStorageMap() .get(storageKey); @@ -242,7 +249,7 @@ protected void searchPerformed(ObjectQuery query, AjaxRequestTarget target) { }; table.setOutputMarkupId(true); - String storageKey = storageMap.get(type); + String storageKey = getStorageKey();//storageMap.get(type); if (StringUtils.isNotEmpty(storageKey)) { PageStorage storage = getSession().getSessionStorage().getPageStorageMap().get(storageKey); if (storage != null) { @@ -264,13 +271,20 @@ private BaseSortableDataProvider> getDataProvider() { protected BoxedTablePanel> getTable() { return (BoxedTablePanel>) get(createComponentPath(ID_MAIN_FORM, ID_TABLE)); } + + private String getStorageKey(){ + return storageMap.get(parentPage.getClass()); + } private void searchPerformed(ObjectQuery query, AjaxRequestTarget target) { BaseSortableDataProvider> provider = getDataProvider(); provider.setQuery(query); - String storageKey = storageMap.get(type); + String storageKey = getStorageKey(); if (StringUtils.isNotEmpty(storageKey)) { PageStorage storage = getSession().getSessionStorage().getPageStorageMap().get(storageKey); + if (storage == null) { + storage = getSession().getSessionStorage().initPageStorage(storageKey); + } if (storage != null) { storage.setSearch(searchModel.getObject()); storage.setPaging(null); @@ -304,10 +318,6 @@ public StringResourceModel createStringResource(String resourceKey, Object... ob return PageBase.createStringResourceStatic(this, resourceKey, objects); } - protected void onCheckboxUpdate(AjaxRequestTarget target) { - - } - protected abstract IColumn, String> createCheckboxColumn(); protected abstract IColumn, String> createNameColumn(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java index a906d712ac1..a36e0afb9df 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java @@ -1,9 +1,9 @@ package com.evolveum.midpoint.gui.api.component; -import java.util.Collection; import java.util.List; import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; import org.apache.wicket.model.IModel; @@ -26,7 +26,19 @@ public PopupObjectListPanel(String id, Class type, boolean multiselect, PageB @Override protected IColumn, String> createCheckboxColumn() { if (isMultiselect()) { - return new CheckBoxHeaderColumn>(); + return new CheckBoxHeaderColumn>() { + @Override + protected void onUpdateRow(AjaxRequestTarget target, DataTable table, IModel> rowModel) { + super.onUpdateRow(target, table, rowModel); + onUpdateCheckbox(target); + }; + + @Override + protected void onUpdateHeader(AjaxRequestTarget target, boolean selected, DataTable table) { + super.onUpdateHeader(target, selected, table); + onUpdateCheckbox(target); + } + }; } return null; } @@ -65,5 +77,9 @@ protected void onSelectPerformed(AjaxRequestTarget target, T object){ protected List createInlineMenu() { return null; } + + protected void onUpdateCheckbox(AjaxRequestTarget target){ + + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.html index 195a07ea416..a52b69484ad 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/TypedAssignablePanel.html @@ -17,28 +17,37 @@
- -
+
+