Skip to content

Commit

Permalink
Merge branch 'master' into feature/escalation
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Feb 7, 2017
2 parents 0b7fa1b + cd9d3d7 commit a0c5849
Show file tree
Hide file tree
Showing 20 changed files with 743 additions and 155 deletions.
2 changes: 1 addition & 1 deletion build-system/pom.xml
Expand Up @@ -625,7 +625,7 @@
<dependency>
<groupId>com.evolveum.polygon</groupId>
<artifactId>connector-ldap</artifactId>
<version>1.4.3</version>
<version>1.4.4-SNAPSHOT</version>
<exclusions>
<exclusion> <!-- Version in dependency of org.apache.servicemix.bundles:org.apache.servicemix.bundles.dom4j conflicts with xalan. Can be removed when connector version is bumped beyond 1.4.2.17 -->
<groupId>xml-apis</groupId>
Expand Down
Expand Up @@ -35,7 +35,7 @@
<div wicket:id="search"/>
</form>

<div class="col-md-1">
<div class="col-md-1 pull-right">
<a wicket:id="cartButton">
<i class="fa fa-shopping-cart fa-2x"></i>
<span wicket:id="itemsCount" class="badge bg-red" style="position: absolute; top: -1px; left: 30px;"></span>
Expand All @@ -49,6 +49,7 @@
</div>

<div wicket:id="catalogItemsPanelContainer">
<h3 wicket:id="assignmentsOwnerName"/>
<div wicket:id="catalogItemsPanel"/>
</div>
</div>
Expand Down
Expand Up @@ -74,6 +74,7 @@ public class AssignmentCatalogPanel<F extends AbstractRoleType> extends BasePane
private static String ID_TREE_PANEL_CONTAINER = "treePanelContainer";
private static String ID_TREE_PANEL = "treePanel";
private static String ID_CATALOG_ITEMS_PANEL_CONTAINER = "catalogItemsPanelContainer";
private static String ID_ASSIGNMENTS_OWNER_NAME = "assignmentsOwnerName";
private static String ID_CATALOG_ITEMS_PANEL = "catalogItemsPanel";
private static final String ID_CART_BUTTON = "cartButton";
private static final String ID_CART_ITEMS_COUNT = "itemsCount";
Expand Down Expand Up @@ -102,6 +103,8 @@ public class AssignmentCatalogPanel<F extends AbstractRoleType> extends BasePane
private ListDataProvider<AssignmentEditorDto> listProvider;
private int itemsPerRow = 4;
private boolean showUserSelectionPopup = true;
private List<AssignmentEditorDto> listProviderData;


public AssignmentCatalogPanel(String id) {
super(id);
Expand Down Expand Up @@ -176,27 +179,13 @@ private void initHeaderPanel(){
initCartButton(headerPanel);
initSearchPanel(headerPanel);
}
public void addOrReplaceLayout(AjaxRequestTarget target, WebMarkupContainer panelContainer){
public void addOrReplaceLayout(AjaxRequestTarget target, WebMarkupContainer panelContainer) {
WebMarkupContainer treePanelContainer = new WebMarkupContainer(ID_TREE_PANEL_CONTAINER);
treePanelContainer.setOutputMarkupId(true);
panelContainer.addOrReplace(treePanelContainer);
if (AssignmentViewType.ROLE_CATALOG_VIEW.equals(AssignmentViewType.getViewTypeFromSession(pageBase)) && StringUtils.isNotEmpty(rootOid)) {
OrgTreePanel treePanel = new OrgTreePanel(ID_TREE_PANEL, new IModel<String>() {
@Override
public String getObject() {
return rootOid;
}

@Override
public void setObject(String s) {

}

@Override
public void detach() {

}
}, false, "AssignmentShoppingCartPanel.treeTitle") {
// not let tree panel initializing in case of empty role catalog oid
OrgTreePanel treePanel = new OrgTreePanel(ID_TREE_PANEL, Model.of(rootOid), false, "AssignmentShoppingCartPanel.treeTitle") {
private static final long serialVersionUID = 1L;

@Override
Expand Down Expand Up @@ -251,6 +240,12 @@ public int getSelectedTabId(){
};
treePanel.setOutputMarkupId(true);
treePanelContainer.add(new AttributeAppender("class", "col-md-3"));
treePanelContainer.add(new VisibleEnableBehaviour(){
@Override
public boolean isVisible(){
return !isCatalogOidEmpty();
}
});
treePanelContainer.addOrReplace(treePanel);
} else {
WebMarkupContainer treePanel = new WebMarkupContainer(ID_TREE_PANEL);
Expand All @@ -263,39 +258,34 @@ public int getSelectedTabId(){
catalogItemsPanelContainer.setOutputMarkupId(true);
panelContainer.addOrReplace(catalogItemsPanelContainer);

String assignmentsOwnerName = pageBase.getSessionStorage().getRoleCatalog().getAssignmentsUserOwner() != null ?
pageBase.getSessionStorage().getRoleCatalog().getAssignmentsUserOwner().getName().getOrig() : "";
Label assignmentsOwnerLabel = new Label(ID_ASSIGNMENTS_OWNER_NAME,
createStringResource("AssignmentCatalogPanel.assignmentsOwner", assignmentsOwnerName));
assignmentsOwnerLabel.add(new VisibleEnableBehaviour(){
@Override
public boolean isVisible(){
return AssignmentViewType.USER_TYPE.equals(pageBase.getSessionStorage().getRoleCatalog().getViewType());
}
});
catalogItemsPanelContainer.add(assignmentsOwnerLabel);

CatalogItemsPanel catalogItemsPanel;
if (AssignmentViewType.USER_TYPE.equals(viewModel.getObject())) {
PrismObject<UserType> assignmentsOwner = pageBase.getSessionStorage().getRoleCatalog().getAssignmentsUserOwner();
IModel<List<AssignmentEditorDto>> assignmentsModel = new IModel<List<AssignmentEditorDto>>() {
@Override
public List<AssignmentEditorDto> getObject() {
if (assignmentsOwner == null){
return new ArrayList<>();
listProviderData = new ArrayList<>();
if (assignmentsOwner != null) {
List<AssignmentType> assignments = assignmentsOwner.asObjectable().getAssignment();
for (AssignmentType assignment : assignments) {
if (assignment.getTargetRef() == null ||
!UserType.COMPLEX_TYPE.equals(assignment.getTargetRef().getType())) {
assignment.setId(null);
listProviderData.add(new AssignmentEditorDto(UserDtoStatus.MODIFY, assignment, pageBase));
}
List<AssignmentEditorDto> list = new ArrayList<>();
List<AssignmentType> assignments = assignmentsOwner.asObjectable().getAssignment();
for (AssignmentType assignment : assignments) {
if (assignment.getTargetRef() == null ||
!UserType.COMPLEX_TYPE.equals(assignment.getTargetRef().getType())) {
assignment.setId(null);
list.add(new AssignmentEditorDto(UserDtoStatus.MODIFY, assignment, pageBase));
}
}
Collections.sort(list);
return list;
}

@Override
public void setObject(List<AssignmentEditorDto> assignmentEditorDtos) {

}

@Override
public void detach() {

}
};
ListDataProvider listDataProvider = new ListDataProvider(this, assignmentsModel);
Collections.sort(listProviderData);
}
ListDataProvider listDataProvider = new ListDataProvider(this, Model.ofList(listProviderData));
catalogItemsPanel = new CatalogItemsPanel(ID_CATALOG_ITEMS_PANEL,
pageBase, itemsPerRow, listDataProvider);
} else {
Expand Down Expand Up @@ -448,6 +438,7 @@ protected void onUpdate(AjaxRequestTarget target) {
} else {
AssignmentCatalogPanel.this.addOrReplaceLayout(target, getCatalogItemsPanelContainer());
target.add(getCatalogItemsPanelContainer());
target.add(getHeaderPanel());
}
}
});
Expand All @@ -459,12 +450,21 @@ protected void onUpdate(AjaxRequestTarget target) {
private WebMarkupContainer getCatalogItemsPanelContainer(){
return (WebMarkupContainer)get(ID_CATALOG_ITEMS_PANEL_CONTAINER);
}

private WebMarkupContainer getHeaderPanel(){
return (WebMarkupContainer)get(ID_HEADER_PANEL);
}

private DropDownChoice getViewSelectComponent(){
return (DropDownChoice)getHeaderPanel().get(ID_VIEW_TYPE);
}
private void initSearchPanel(WebMarkupContainer headerPanel) {
final Form searchForm = new Form(ID_SEARCH_FORM);
headerPanel.add(searchForm);
searchForm.add(new VisibleEnableBehaviour() {
public boolean isVisible() {
return !isCatalogOidEmpty();
return !isCatalogOidEmpty()
&& !AssignmentViewType.USER_TYPE.equals(pageBase.getSessionStorage().getRoleCatalog().getViewType());
}
});
searchForm.setOutputMarkupId(true);
Expand Down Expand Up @@ -633,8 +633,9 @@ public static List<AssignmentViewType> createAssignableTypesList() {
}

private boolean isCatalogOidEmpty(){
String oid = selectedTreeItemOidModel != null ? selectedTreeItemOidModel.getObject() : "";
return AssignmentViewType.ROLE_CATALOG_VIEW.equals(AssignmentViewType.getViewTypeFromSession(pageBase)) &&
(selectedTreeItemOidModel == null || StringUtils.isEmpty(selectedTreeItemOidModel.getObject()));
(selectedTreeItemOidModel == null || StringUtils.isEmpty(oid));
}

private void initUserSelectionPopup(StringResourceModel title, boolean targetUserSelection, AjaxRequestTarget target) {
Expand All @@ -653,7 +654,10 @@ protected void onSelectPerformed(AjaxRequestTarget target, UserType targetUser)
} else {
pageBase.getSessionStorage().getRoleCatalog().setAssignmentsUserOwner(targetUser.asPrismContainer());
AssignmentCatalogPanel.this.addOrReplaceLayout(target, getCatalogItemsPanelContainer());
target.add(getCatalogItemsPanelContainer()); }
target.add(getCatalogItemsPanelContainer());
target.add(getHeaderPanel());
target.add(getViewSelectComponent());
}
}

@Override
Expand Down
Expand Up @@ -19,6 +19,8 @@
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.web.component.data.*;
import com.evolveum.midpoint.web.component.util.ListDataProvider;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.self.dto.AssignmentViewType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.StringUtils;
Expand Down Expand Up @@ -146,7 +148,11 @@ private void refreshItemsPanel() {
listProvider.getAvailableData().clear();
}
long from = currentPage * itemsPerRow * DEFAULT_ROWS_COUNT;
listProvider.internalIterator(from, itemsPerRow * DEFAULT_ROWS_COUNT);
try {
listProvider.internalIterator(from, itemsPerRow * DEFAULT_ROWS_COUNT);
} catch (ArrayIndexOutOfBoundsException ex){
// nothing to do here
}
}
} else {
if (objectDataProvider != null) {
Expand All @@ -167,7 +173,14 @@ private MultiButtonTable getMultiButtonTable() {
}

protected WebMarkupContainer createFooter(String footerId) {
return new PagingFooter(footerId, ID_PAGING_FOOTER, CatalogItemsPanel.this);
PagingFooter footer = new PagingFooter(footerId, ID_PAGING_FOOTER, CatalogItemsPanel.this);
footer.add(new VisibleEnableBehaviour(){
@Override
public boolean isVisible(){
return !isCatalogOidEmpty();
}
});
return footer;
}

private static class PagingFooter extends Fragment {
Expand Down
Expand Up @@ -306,6 +306,7 @@ private void processResetPassword(AjaxRequestTarget target, Form<?> form) {
target.add(PageForgotPassword.this);
} else {
getSession().error(getString("PageForgotPassword.send.nonce.failed"));
LOGGER.error("Failed to sent none to user: {} ", result.getMessage());
throw new RestartResponseException(PageForgotPassword.this);
}

Expand All @@ -317,6 +318,7 @@ private void processResetPassword(AjaxRequestTarget target, Form<?> form) {
break;
default:
getSession().error(getString("pageForgetPassword.message.reset.method.not.supported"));
LOGGER.error("Reset method {} not supported.", getResetPasswordPolicy().getResetMethod());
throw new RestartResponseException(PageForgotPassword.this);
}

Expand Down

0 comments on commit a0c5849

Please sign in to comment.