diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java index c041405d4fe..2367a3b2073 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java @@ -3360,7 +3360,7 @@ public static List getRelationsDividedList(List - - - - -
-
- -
-
- - - -
-
- - - - \ No newline at end of file diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.java index 8f379195c85..514eb3330e5 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AbstractRoleAssignmentPanel.java @@ -67,10 +67,6 @@ public class AbstractRoleAssignmentPanel extends AssignmentPanel { private static final Trace LOGGER = TraceManager.getTrace(AssignmentPanel.class); - private static final String ID_NEW_ITEM_BUTTON = "newItemButton"; - private static final String ID_SHOW_ALL_ASSIGNMENTS_BUTTON = "showAllAssignmentsButton"; - private static final String ID_BUTTON_TOOLBAR_FRAGMENT = "buttonToolbarFragment"; - protected static final String DOT_CLASS = AbstractRoleAssignmentPanel.class.getName() + "."; private static final String OPERATION_LOAD_TARGET_REF_OBJECT = DOT_CLASS + "loadAssignmentTargetRefObject"; @@ -78,47 +74,34 @@ public AbstractRoleAssignmentPanel(String id, IModel("fa fa-address-card"), - createStringResource("AssignmentTablePanel.menu.showAllAssignments")) { - - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget ajaxRequestTarget) { - showAllAssignments(ajaxRequestTarget); - } - }; - searchContainer.addOrReplace(showAllAssignmentsButton); - showAllAssignmentsButton.setOutputMarkupId(true); - showAllAssignmentsButton.add(new VisibleEnableBehaviour(){ - - private static final long serialVersionUID = 1L; - - public boolean isVisible(){ - return showAllAssignmentsVisible(); - } - }); - return searchContainer; - } - - protected void showAllAssignments(AjaxRequestTarget target) { - PageBase pageBase = getPageBase(); - List previewAssignmentsList; - if (pageBase instanceof PageAdminFocus) { - previewAssignmentsList = ((PageAdminFocus) pageBase).showAllAssignmentsPerformed(target); - } else { - previewAssignmentsList = Collections.emptyList(); - } - AllAssignmentsPreviewDialog assignmentsDialog = new AllAssignmentsPreviewDialog(pageBase.getMainPopupBodyId(), previewAssignmentsList, - pageBase); - pageBase.showMainPopup(assignmentsDialog, target); - } +// protected Fragment initCustomButtonToolbar(String contentAreaId){ +// Fragment searchContainer = new Fragment(contentAreaId, ID_BUTTON_TOOLBAR_FRAGMENT, this); +// +// MultifunctionalButton newObjectIcon = getMultivalueContainerListPanel().getNewItemButton(ID_NEW_ITEM_BUTTON); +// searchContainer.add(newObjectIcon); +// +// AjaxIconButton showAllAssignmentsButton = new AjaxIconButton(ID_SHOW_ALL_ASSIGNMENTS_BUTTON, new Model<>("fa fa-address-card"), +// createStringResource("AssignmentTablePanel.menu.showAllAssignments")) { +// +// private static final long serialVersionUID = 1L; +// +// @Override +// public void onClick(AjaxRequestTarget ajaxRequestTarget) { +// showAllAssignments(ajaxRequestTarget); +// } +// }; +// searchContainer.addOrReplace(showAllAssignmentsButton); +// showAllAssignmentsButton.setOutputMarkupId(true); +// showAllAssignmentsButton.add(new VisibleEnableBehaviour(){ +// +// private static final long serialVersionUID = 1L; +// +// public boolean isVisible(){ +// return showAllAssignmentsVisible(); +// } +// }); +// return searchContainer; +// } protected List, String>> initColumns() { List, String>> columns = new ArrayList<>(); @@ -174,9 +157,6 @@ private String getRelationLabelValue(ContainerValueWrapper assig return assignmentWrapper.getContainerValue().getValue().getTargetRef().getRelation().getLocalPart(); } - protected boolean showAllAssignmentsVisible(){ - return true; - } protected void initCustomPaging(){ getAssignmentsTabStorage().setPaging(getPrismContext().queryFactory() diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.html index f905384b0d2..a0ec94aec77 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.html @@ -18,8 +18,11 @@
- + +
+
+
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java index eb774d36e60..3180947f9f9 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java @@ -34,12 +34,19 @@ import com.evolveum.midpoint.util.exception.SchemaException; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; +import com.evolveum.midpoint.web.component.AjaxIconButton; +import com.evolveum.midpoint.web.component.MultifunctionalButton; import com.evolveum.midpoint.web.component.data.column.*; import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.prism.*; import com.evolveum.midpoint.web.component.search.SearchFactory; import com.evolveum.midpoint.web.component.search.SearchItemDefinition; +import com.evolveum.midpoint.web.component.util.VisibleBehaviour; +import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; +import com.evolveum.midpoint.web.page.admin.PageAdminFocus; +import com.evolveum.midpoint.web.page.admin.users.component.AllAssignmentsPreviewDialog; +import com.evolveum.midpoint.web.page.admin.users.component.AssignmentInfoDto; import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.commons.collections.CollectionUtils; @@ -83,6 +90,10 @@ public class AssignmentPanel extends BasePanel> protected static final String ID_SPECIFIC_CONTAINERS_FRAGMENT = "specificContainersFragment"; private final static String ID_ACTIVATION_PANEL = "activationPanel"; protected static final String ID_SPECIFIC_CONTAINER = "specificContainers"; + private static final String ID_NEW_ITEM_BUTTON = "newItemButton"; + private static final String ID_SHOW_ALL_ASSIGNMENTS_BUTTON = "showAllAssignmentsButton"; + private static final String ID_BUTTON_TOOLBAR_FRAGMENT = "buttonToolbarFragment"; + private static final String DOT_CLASS = AssignmentPanel.class.getName() + "."; protected static final String OPERATION_LOAD_ASSIGNMENTS_LIMIT = DOT_CLASS + "loadAssignmentsLimit"; @@ -155,12 +166,15 @@ protected List getNewObjectInfluencesList() { @Override protected DisplayType getNewObjectButtonDisplayType() { return WebComponentUtil.createDisplayType(GuiStyleConstants.EVO_ASSIGNMENT_ICON, "green", - AssignmentPanel.this.createStringResource("assignment.details.newValue").getString()); + AssignmentPanel.this.createStringResource(isInducement() ? + "AssignmentPanel.newInducementTitle" : "AssignmentPanel.newAssignmentTitle").getString()); } @Override protected DisplayType getNewObjectAdditionalButtonDisplayType(AssignmentObjectRelation assignmentTargetRelation) { - return WebComponentUtil.getAssignmentObjectRelationDisplayType(assignmentTargetRelation, AssignmentPanel.this.getPageBase()); + return WebComponentUtil.getAssignmentObjectRelationDisplayType(assignmentTargetRelation, + AssignmentPanel.this.createStringResource(isInducement() ? + "AssignmentPanel.newInducementTitle" : "AssignmentPanel.newAssignmentTitle").getString()); } @Override @@ -222,8 +236,39 @@ protected WebMarkupContainer initButtonToolbar(String id) { setOutputMarkupId(true); } - protected WebMarkupContainer initCustomButtonToolbar(String id) { - return null; + protected Fragment initCustomButtonToolbar(String contentAreaId){ + Fragment searchContainer = new Fragment(contentAreaId, ID_BUTTON_TOOLBAR_FRAGMENT, this); + + MultifunctionalButton newObjectIcon = getMultivalueContainerListPanel().getNewItemButton(ID_NEW_ITEM_BUTTON); + searchContainer.add(newObjectIcon); + + AjaxIconButton showAllAssignmentsButton = new AjaxIconButton(ID_SHOW_ALL_ASSIGNMENTS_BUTTON, new Model<>("fa fa-address-card"), + createStringResource("AssignmentTablePanel.menu.showAllAssignments")) { + + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget ajaxRequestTarget) { + showAllAssignments(ajaxRequestTarget); + } + }; + searchContainer.addOrReplace(showAllAssignmentsButton); + showAllAssignmentsButton.setOutputMarkupId(true); + showAllAssignmentsButton.add(new VisibleBehaviour(() -> !isInducement())); + return searchContainer; + } + + protected void showAllAssignments(AjaxRequestTarget target) { + PageBase pageBase = getPageBase(); + List previewAssignmentsList; + if (pageBase instanceof PageAdminFocus) { + previewAssignmentsList = ((PageAdminFocus) pageBase).showAllAssignmentsPerformed(target); + } else { + previewAssignmentsList = Collections.emptyList(); + } + AllAssignmentsPreviewDialog assignmentsDialog = new AllAssignmentsPreviewDialog(pageBase.getMainPopupBodyId(), previewAssignmentsList, + pageBase); + pageBase.showMainPopup(assignmentsDialog, target); } protected List createSearchableItems(PrismContainerDefinition containerDef){ @@ -255,8 +300,7 @@ protected void initCustomPaging(){ } protected ObjectTabStorage getAssignmentsTabStorage(){ - boolean isInducement = getModelObject().getPath().containsNameExactly(AbstractRoleType.F_INDUCEMENT); - if (isInducement){ + if (isInducement()){ return getParentPage().getSessionStorage().getInducementsTabStorage(); } else { return getParentPage().getSessionStorage().getAssignmentsTabStorage(); @@ -957,6 +1001,10 @@ protected boolean isAssignmentsLimitReached(int selectedAssignmentsCount, boolea (changedItems + selectedAssignmentsCount) >= assignmentsRequestsLimit; } + protected boolean isInducement(){ + return getModelObject().getPath().containsNameExactly(AbstractRoleType.F_INDUCEMENT); + } + protected ObjectFilter getSubtypeFilter(){ return null; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementsPanel.java index 73b66926b58..15a714712aa 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementsPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/InducementsPanel.java @@ -49,11 +49,4 @@ protected UserProfileStorage.TableId getTableId() { private ObjectTabStorage getInducementsTabStorage(){ return getParentPage().getSessionStorage().getInducementsTabStorage(); } - - @Override - protected boolean showAllAssignmentsVisible(){ - return false; - } - - } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRulesPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRulesPanel.html deleted file mode 100644 index 982b1d55091..00000000000 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRulesPanel.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - -
- -
-
- - - \ No newline at end of file diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/AbstractRoleMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/AbstractRoleMemberPanel.java index d60cfb3a8bb..8bfc0aa8d86 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/AbstractRoleMemberPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/AbstractRoleMemberPanel.java @@ -244,7 +244,8 @@ protected DisplayType getMainButtonDisplayType(){ @Override protected DisplayType getAdditionalButtonDisplayType(AssignmentObjectRelation assignmentTargetRelation){ - return WebComponentUtil.getAssignmentObjectRelationDisplayType(assignmentTargetRelation, AbstractRoleMemberPanel.this.getPageBase()); + return WebComponentUtil.getAssignmentObjectRelationDisplayType(assignmentTargetRelation, + createStringResource("abstractRoleMemberPanel.menu.assignMember").getString()); } @Override diff --git a/gui/admin-gui/src/main/resources/localization/Midpoint.properties b/gui/admin-gui/src/main/resources/localization/Midpoint.properties index c507a771df5..c270d81ac6e 100755 --- a/gui/admin-gui/src/main/resources/localization/Midpoint.properties +++ b/gui/admin-gui/src/main/resources/localization/Midpoint.properties @@ -3514,6 +3514,8 @@ chooseMemberForOrgPopup.otherTypesLabel=Others AssignmentPanel.newAssignmentParameters=Parameters AssignmentPanel.allLabel=All AssignmentPanel.viewTargetObject=View target object +AssignmentPanel.newAssignmentTitle=New assignment +AssignmentPanel.newInducementTitle=New inducement SearchPanel.more=More... SearchPanel.add=Add SearchPanel.close=Close diff --git a/testing/schrodingertest/src/test/resources/configuration/schrodinger.properties b/testing/schrodingertest/src/test/resources/configuration/schrodinger.properties index ff9ab423ed4..8c2156a92a3 100644 --- a/testing/schrodingertest/src/test/resources/configuration/schrodinger.properties +++ b/testing/schrodingertest/src/test/resources/configuration/schrodinger.properties @@ -1,6 +1,6 @@ username=administrator password=5ecr3t -base_url=http://localhost:8180/midpoint +base_url=http://localhost:8080/midpoint webdriver=webdriver.chrome.driver webdriverLocation=/opt/chromedriver # By default if no value is specified for headless start then the value is: false