Skip to content

Commit

Permalink
some fixes/improvements for new assignments tab
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Jul 13, 2017
1 parent fbd7b1a commit ea9cfbf
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 20 deletions.
Expand Up @@ -70,7 +70,7 @@ public Popupable getDeleteAssignmentPopupContent(AssignmentEditorDto dto) {

@Override
public String getObject() {
return getAssignmentsDeleteMessage(getSelectedAssignments().size());
return getAssignmentsDeleteMessage(dto, getSelectedAssignments().size());
}
}) {

Expand All @@ -95,14 +95,19 @@ public void yesPerformed(AjaxRequestTarget target) {
};
}

protected String getAssignmentsDeleteMessage(int size){
return createStringResource("AssignmentTablePanel.modal.message.delete",
size).getString();
protected String getAssignmentsDeleteMessage(AssignmentEditorDto dto, int size){
if (dto != null){
return createStringResource("pageUser.message.deleteAssignmentRowConfirm",
dto.getName()).getString();
} else {
return createStringResource("AssignmentTablePanel.modal.message.delete",
size).getString();
}
}

protected void reloadMainFormButtons(AjaxRequestTarget target){}

private void deleteAssignmentConfirmedPerformed(AjaxRequestTarget target,
protected void deleteAssignmentConfirmedPerformed(AjaxRequestTarget target,
List<AssignmentEditorDto> toDelete) {
List<AssignmentEditorDto> assignments = getAssignmentModel().getObject();

Expand Down
Expand Up @@ -33,11 +33,16 @@
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.ChooseTypePanel;
import com.evolveum.midpoint.web.page.admin.dto.ObjectViewDto;
import com.evolveum.midpoint.web.page.admin.users.component.AssignmentsPreviewDto;
import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus;
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.web.util.ObjectTypeGuiDescriptor;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
Expand Down Expand Up @@ -94,9 +99,6 @@ public void onClick(AjaxRequestTarget target) {
@Override
protected void addPerformed(AjaxRequestTarget target, List selected, RelationTypes relation) {
addSelectedAssignmentsPerformed(target, selected, relation);
addOrReplaceAssignmentsTable(getAssignmentsContainer());
target.add(getAssignmentsContainer());

}

};
Expand Down Expand Up @@ -155,7 +157,14 @@ protected void onUpdate(AjaxRequestTarget target) {
Model.ofList(relationAssignmentsMap.get(relationModel.getObject())), false);
BoxedTablePanel<AssignmentEditorDto> assignmentTable = new BoxedTablePanel<AssignmentEditorDto>(ID_ASSIGNMENTS_TABLE,
assignmentsProvider, initColumns(), UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE,
pageBase.getSessionStorage().getUserProfile().getPagingSize(UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE));
pageBase.getSessionStorage().getUserProfile().getPagingSize(UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE)){
protected Item<AssignmentEditorDto> customizeNewRowItem(Item<AssignmentEditorDto> item, IModel<AssignmentEditorDto> model) {
if (UserDtoStatus.DELETE.equals(model.getObject().getStatus())){
item.add(AttributeModifier.append("class", AssignmentsUtil.createAssignmentStatusClassModel(model)));
}
return item;
}
};
assignmentTable.setOutputMarkupId(true);
assignmentTable.setItemsPerPage(UserProfileStorage.DEFAULT_PAGING_SIZE);
assignmentTable.setShowPaging(true);
Expand All @@ -168,6 +177,27 @@ private List<IColumn<AssignmentEditorDto, String>> initColumns() {

columns.add(new CheckBoxHeaderColumn<AssignmentEditorDto>());

columns.add(new IconColumn<AssignmentEditorDto>(Model.of("")){
private static final long serialVersionUID = 1L;

@Override
protected IModel<String> createIconModel(IModel<AssignmentEditorDto> rowModel) {
switch (rowModel.getObject().getType()){
case ORG_UNIT:
return Model.of(GuiStyleConstants.CLASS_OBJECT_ORG_ICON);
case ROLE:
return Model.of(GuiStyleConstants.CLASS_OBJECT_ROLE_ICON);
case SERVICE:
return Model.of(GuiStyleConstants.CLASS_OBJECT_SERVICE_ICON);
case CONSTRUCTION:
return Model.of(GuiStyleConstants.CLASS_OBJECT_RESOURCE_ICON);
default:
return Model.of("");
}

}
});

columns.add(new LinkColumn<AssignmentEditorDto>(createStringResource("AssignmentDataTablePanel.targetColumnName")){
private static final long serialVersionUID = 1L;

Expand Down Expand Up @@ -340,8 +370,12 @@ private void fillInRelationAssignmentsMap(){
assignmentList.add(assignmentDto);
continue;
}
if (AssignmentEditorDtoType.USER.equals(assignmentDto.getType()) || AssignmentEditorDtoType.POLICY_RULE.equals(assignmentDto.getType())){
continue;
}
String relationLocalPart = relation.getRelation() == null ? SchemaConstants.ORG_DEFAULT.getLocalPart() : relation.getRelation().getLocalPart();
if (relationLocalPart.equals(assignmentDto.getRelation())){
String assignmentDtoRelation = assignmentDto.getRelation();
if (relationLocalPart.equals(assignmentDtoRelation) || (relation.getRelation() == null && assignmentDtoRelation == null)){
assignmentList.add(assignmentDto);
}
}
Expand Down
Expand Up @@ -337,15 +337,7 @@ private boolean isTargetValid() {
}

protected IModel<String> createHeaderClassModel(final IModel<AssignmentEditorDto> model) {
return new AbstractReadOnlyModel<String>() {
private static final long serialVersionUID = 1L;

@Override
public String getObject() {
AssignmentEditorDto dto = model.getObject();
return dto.getStatus().name().toLowerCase();
}
};
return AssignmentsUtil.createAssignmentStatusClassModel(model);
}

protected void initBodyLayout(WebMarkupContainer body) {
Expand Down
Expand Up @@ -106,6 +106,18 @@ public void component(Component component, IVisit<Object> objectIVisit) {
});
}

public static IModel<String> createAssignmentStatusClassModel(final IModel<AssignmentEditorDto> model) {
return new AbstractReadOnlyModel<String>() {
private static final long serialVersionUID = 1L;

@Override
public String getObject() {
AssignmentEditorDto dto = model.getObject();
return dto.getStatus().name().toLowerCase();
}
};
}

private static void addAjaxOnBlurUpdateBehaviorToComponent(final Component component) {
component.setOutputMarkupId(true);
component.add(new AjaxFormComponentUpdatingBehavior("blur") {
Expand Down
Expand Up @@ -153,7 +153,7 @@ protected String getNoAssignmentsSelectedMessage() {
}

@Override
protected String getAssignmentsDeleteMessage(int size) {
protected String getAssignmentsDeleteMessage(AssignmentEditorDto dto, int size) {
return createStringResource("AssignmentTablePanel.modal.message.deleteDelegation",
size).getString();
}
Expand Down
Expand Up @@ -2198,6 +2198,7 @@ pageUser.message.couldntCreateAccount=Couldn't create account form for '{0}', re
pageUser.message.couldntCreateAccountNoSchema=Couldn't create account form for '{0}', no refined schema available. Possible problem with connector configuration and/or connection. Please check logs for more information.
pageUser.message.deleteAccountConfirm=Do you really want to delete {0} account(s)?
pageUser.message.deleteAssignmentConfirm=Do you really want to delete {0} assignment(s)?
pageUser.message.deleteAssignmentRowConfirm=Do you really want to delete assignment {0}?
pageUser.message.illegalAccountState=Illegal account state '{0}'.
pageUser.message.illegalAssignmentState=Illegal assignment state '{0}'.
pageUser.message.noAccountSelected=No account selected.
Expand Down
12 changes: 12 additions & 0 deletions gui/admin-gui/src/main/webapp/less/admin-lte/less/table.less
Expand Up @@ -37,6 +37,18 @@
border: 1px solid @box-border-color;
}
}
> tr.delete {
background-color: @brand-danger;
a {
color: #FFFFFF !important;;
}
}
> tr.add {
background-color: @brand-success;
a {
color: #FFFFFF !important;;
}
}
}
> thead > tr {
> th,
Expand Down

0 comments on commit ea9cfbf

Please sign in to comment.