Skip to content

Commit

Permalink
role catalog styles + restructuring
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Oct 12, 2016
1 parent 144c658 commit 1c609dd
Show file tree
Hide file tree
Showing 6 changed files with 129 additions and 59 deletions.
Expand Up @@ -152,7 +152,7 @@ private void initLayout() {
initCartButton(headerPanel);
initSearchPanel(headerPanel);

MultiButtonTable assignmentsTable = new MultiButtonTable(ID_MULTI_BUTTON_TABLE, itemsPerRow, itemsListModel);
MultiButtonTable assignmentsTable = new MultiButtonTable(ID_MULTI_BUTTON_TABLE, itemsPerRow, itemsListModel, pageBase);
assignmentsTable.setOutputMarkupId(true);
add(assignmentsTable);

Expand Down Expand Up @@ -327,7 +327,7 @@ private void refreshItemsPanel() {
long from = currentPage * itemsPerRow * DEFAULT_ROWS_COUNT;
provider.internalIterator(from, itemsPerRow * DEFAULT_ROWS_COUNT);
}
MultiButtonTable assignmentsTable = new MultiButtonTable(ID_MULTI_BUTTON_TABLE, itemsPerRow, itemsListModel);
MultiButtonTable assignmentsTable = new MultiButtonTable(ID_MULTI_BUTTON_TABLE, itemsPerRow, itemsListModel, pageBase);
assignmentsTable.setOutputMarkupId(true);
replace(assignmentsTable);
}
Expand Down
Expand Up @@ -20,23 +20,26 @@
<div class="row shopping-cart-row" wicket:id="row">
<div wicket:id="cell">
<div class="col-lg-3 col-xs-6">
<div class="small-box bg-green shopping-cart-item-box">
<div wicket:id="inner" class="inner">
<h4 wicket:id="innerLabel"></h4>
</div>
<div class="icon">
<i wicket:id="typeIcon"></i>
</div>
<div class="shopping-cart-item-box-footer">
<span wicket:id="detailsLink" class="shopping-cart-item-button-details">
<!-- TODO: convert static text to tranlatable message -->
Details <i class="fa fa-arrow-circle-right"></i>
</span>
<span wicket:id="addToCartLink" class="shopping-cart-item-button-add">
<!-- TODO: convert static text to tranlatable message -->
Add to cart <i class="fa fa-plus-circle"></i>
</span>
</div>
<div class="small-box shopping-cart-item-box">
<div wicket:id="itemButtonContainer">

<div wicket:id="inner" class="inner">
<div wicket:id="innerLabel" class="inner-label"></div>
</div>
<div class="icon">
<i wicket:id="typeIcon"></i>
</div>
<div class="shopping-cart-item-box-footer">
<span wicket:id="detailsLink" class="shopping-cart-item-button-details">
<span wicket:id="detailsLinkLabel"/>
<i wicket:id="detailsLinkIcon" class="fa fa-arrow-circle-right"/>
</span>
<span wicket:id="addToCartLink" class="shopping-cart-item-button-add">
<wicket:message key="MultiButtonPanel.addToCartLink"/>
<i wicket:id="addToCartLinkIcon" class="fa fa-plus-circle" style="margin-left: 10px;"/>
</span>
</div>
</div>
</div>
</div>
</div>
Expand Down
Expand Up @@ -16,6 +16,9 @@
package com.evolveum.midpoint.web.component.data;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.AjaxIconButton;
import com.evolveum.midpoint.web.component.assignment.*;
import com.evolveum.midpoint.web.page.self.PageAssignmentDetails;
import com.evolveum.midpoint.web.session.UsersStorage;
Expand All @@ -29,6 +32,7 @@
import org.apache.wicket.markup.html.navigation.paging.IPageableItems;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -41,24 +45,33 @@ public class MultiButtonTable extends BasePanel<List<AssignmentEditorDto>> {

private static final String ID_ROW = "row";
private static final String ID_CELL = "cell";
private static final String ID_ITEM_BUTTON_CONTAINER = "itemButtonContainer";
private static final String ID_INNER = "inner";
private static final String ID_INNER_LABEL = "innerLabel";
private static final String ID_TYPE_ICON = "typeIcon";
private static final String ID_ADD_TO_CART_LINK = "addToCartLink";
private static final String ID_ADD_TO_CART_LINK_LABEL = "addToCartLinkLabel";
private static final String ID_ADD_TO_CART_LINK_ICON = "addToCartLinkIcon";
private static final String ID_DETAILS_LINK = "detailsLink";
private static final String ID_DETAILS_LINK_LABEL = "detailsLinkLabel";
private static final String ID_DETAILS_LINK_ICON = "detailsLinkIcon";

private String addToCartLinkIcon = "fa fa-times-circle fa-lg text-danger";
private String detailsLinkIcon = "fa fa-arrow-circle-right";
private long itemsCount = 0;
private long itemsPerRow = 0;
private PageBase pageBase;

private boolean plusIconClicked = false;

public MultiButtonTable (String id){
super(id);
}

public MultiButtonTable (String id, long itemsPerRow, IModel<List<AssignmentEditorDto>> model){
public MultiButtonTable (String id, long itemsPerRow, IModel<List<AssignmentEditorDto>> model, PageBase pageBase){
super(id, model);
this.itemsPerRow = itemsPerRow;
this.pageBase = pageBase;

initLayout();
}
Expand All @@ -82,7 +95,11 @@ private void initLayout(){
WebMarkupContainer colContainer = new WebMarkupContainer(columns.newChildId());
columns.add(colContainer);

populateCell(colContainer, assignmentsList.get(index));
WebMarkupContainer itemButtonContainer = new WebMarkupContainer(ID_ITEM_BUTTON_CONTAINER);
itemButtonContainer.setOutputMarkupId(true);
itemButtonContainer.add(new AttributeAppender("class", getBackgroundClass(assignmentsList.get(index).getType())));
colContainer.add(itemButtonContainer);
populateCell(itemButtonContainer, assignmentsList.get(index));
index++;
if (index >= assignmentsList.size()){
break;
Expand All @@ -100,66 +117,94 @@ protected void populateCell(WebMarkupContainer cellContainer, final AssignmentEd

@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {
if (!plusIconClicked) {
IModel<AssignmentEditorDto> assignmentModel = new IModel<AssignmentEditorDto>() {
@Override
public AssignmentEditorDto getObject() {
assignment.setMinimized(false);
assignment.setSimpleView(true);
return assignment;
}

@Override
public void setObject(AssignmentEditorDto assignmentEditorDto) {

}

@Override
public void detach() {

}
};
setResponsePage(new PageAssignmentDetails(assignmentModel));
} else {
plusIconClicked = false;
}
assignmentDetailsPerformed(assignment, ajaxRequestTarget);
}
};
cellContainer.add(inner);

Label nameLabel = new Label(ID_INNER_LABEL, assignment.getName());
inner.add(nameLabel);

AjaxLink detailsLink = new AjaxLink(ID_DETAILS_LINK) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
// TODO
}
AjaxLink detailsLink = new AjaxLink(ID_DETAILS_LINK) {
@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {
assignmentDetailsPerformed(assignment, ajaxRequestTarget);
}
};
cellContainer.add(detailsLink);

AjaxLink addToCartLink = new AjaxLink(ID_ADD_TO_CART_LINK) {

Label detailsLinkLabel = new Label(ID_DETAILS_LINK_LABEL, pageBase.createStringResource("MultiButtonPanel.detailsLink"));
detailsLinkLabel.setRenderBodyOnly(true);
detailsLink.add(detailsLinkLabel);

AjaxLink detailsLinkIcon = new AjaxLink(ID_DETAILS_LINK_ICON) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
addAssignmentPerformed(assignment, target);
}


};
detailsLink.add(detailsLinkIcon);

AjaxLink addToCartLink = new AjaxLink(ID_ADD_TO_CART_LINK) {
@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {
addAssignmentPerformed(assignment, ajaxRequestTarget);
}
};
cellContainer.add(addToCartLink);


// Label addToCartLinkLabel = new Label(ID_ADD_TO_CART_LINK_LABEL, pageBase.createStringResource("MultiButtonPanel.addToCartLink"));
// addToCartLinkLabel.setRenderBodyOnly(true);
// addToCartLinkLabel.add(new AjaxEventBehavior("click") {
// @Override
// protected void onEvent(AjaxRequestTarget ajaxRequestTarget) {
// addAssignmentPerformed(assignment, ajaxRequestTarget);
// }
// });
// addToCartLink.add(addToCartLinkLabel);

AjaxLink addToCartLinkIcon = new AjaxLink(ID_ADD_TO_CART_LINK_ICON) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
}

};
addToCartLink.add(addToCartLinkIcon);

WebMarkupContainer icon = new WebMarkupContainer(ID_TYPE_ICON);
icon.add(new AttributeAppender("class", getIconClass(assignment.getType())));
cellContainer.add(icon);

}

protected void assignmentDetailsPerformed(AjaxRequestTarget target){
private void assignmentDetailsPerformed(final AssignmentEditorDto assignment, AjaxRequestTarget target){
if (!plusIconClicked) {
IModel<AssignmentEditorDto> assignmentModel = new IModel<AssignmentEditorDto>() {
@Override
public AssignmentEditorDto getObject() {
assignment.setMinimized(false);
assignment.setSimpleView(true);
return assignment;
}

@Override
public void setObject(AssignmentEditorDto assignmentEditorDto) {

}

@Override
public void detach() {

}
};
setResponsePage(new PageAssignmentDetails(assignmentModel));
} else {
plusIconClicked = false;
}
}

private String getIconClass(AssignmentEditorDtoType type){
Expand All @@ -175,6 +220,18 @@ private String getIconClass(AssignmentEditorDtoType type){
}
}

private String getBackgroundClass(AssignmentEditorDtoType type){
if (AssignmentEditorDtoType.ROLE.equals(type)){
return "object-role-bg";
}else if (AssignmentEditorDtoType.SERVICE.equals(type)){
return "object-service-bg";
}else if (AssignmentEditorDtoType.ORG_UNIT.equals(type)){
return "object-org-bg";
} else {
return "";
}
}

private void addAssignmentPerformed(AssignmentEditorDto assignment, AjaxRequestTarget target){
plusIconClicked = true;
UsersStorage storage = getPageBase().getSessionStorage().getUsers();
Expand Down
Expand Up @@ -3325,6 +3325,8 @@ PageAssignmentShoppingKart.title=Assignment request
PageAssignmentShoppingKart.roleCatalogIsNotConfigured=Role catalog is not configured in the system configuration xml
MultiButtonPanel.plusIconTitle=Add item to shopping cart
MultiButtonPanel.assignmentDetailsPopupTitle=Assignment details
MultiButtonPanel.detailsLink=Details
MultiButtonPanel.addToCartLink=Add to cart
PageAssignmentDetails.title=Assignment detail
PageAssignmentDetails.backButton=Back
PageAssignmentDetails.addToCartButton=Add to cart
Expand All @@ -3348,4 +3350,4 @@ PageAuditLogViewer.column.time=Time
PageAuditLogViewer.column.initiatorRef=Initiator
PageAuditLogViewer.column.taskIdentifier=Task Identifier
PageAuditLogViewer.column.channel=Channel
PageAuditLogViewer.column.delta=Delta
PageAuditLogViewer.column.delta=Delta
Expand Up @@ -3285,6 +3285,8 @@ PageAssignmentShoppingKart.title=Assignment request
PageAssignmentShoppingKart.roleCatalogIsNotConfigured=Role catalog is not configured in the system configuration xml
MultiButtonPanel.plusIconTitle=Add item to shopping cart
MultiButtonPanel.assignmentDetailsPopupTitle=Assignment details
MultiButtonPanel.detailsLink=Details
MultiButtonPanel.addToCartLink=Add to cart
PageAssignmentDetails.title=Assignment detail
PageAssignmentDetails.backButton=Back
PageAssignmentDetails.addToCartButton=Add to cart
Expand Down
6 changes: 6 additions & 0 deletions gui/admin-gui/src/main/webapp/less/midpoint-theme.less
Expand Up @@ -1091,6 +1091,12 @@ dd.stacktrace::before {
.inner {
min-height: 90px;
}

.inner-label {
font-size: 18px;
padding-top: 15px;
padding-left: 10px;
}
}

.shopping-cart-item-box-footer {
Expand Down

0 comments on commit 1c609dd

Please sign in to comment.