Skip to content

Commit

Permalink
GUI imporvement - show organization unit tree when assigning org unit…
Browse files Browse the repository at this point in the history
… to the user
  • Loading branch information
katkav committed Mar 26, 2015
1 parent cf76d9b commit 2aafddc
Show file tree
Hide file tree
Showing 14 changed files with 1,142 additions and 175 deletions.
Expand Up @@ -18,6 +18,7 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div wicket:id="assignablePopup" />
<div wicket:id="assignableOrgPopup" />
<div wicket:id="deleteAssignmentPopup" />

<div wicket:id="assignments">
Expand Down
Expand Up @@ -37,7 +37,9 @@
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction;
import com.evolveum.midpoint.web.component.util.LoadableModel;
import com.evolveum.midpoint.web.component.util.SimplePanel;
import com.evolveum.midpoint.web.page.admin.users.component.AssignableOrgPopupContent;
import com.evolveum.midpoint.web.page.admin.users.component.AssignablePopupContent;
import com.evolveum.midpoint.web.page.admin.users.component.AssignableRolePopupContent;
import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

Expand Down Expand Up @@ -78,6 +80,8 @@ public class AssignmentTablePanel<T extends ObjectType> extends SimplePanel<Assi
private static final String ID_LIST = "assignmentList";
private static final String ID_ROW = "assignmentEditor";
private static final String ID_MODAL_ASSIGN = "assignablePopup";
private static final String ID_MODAL_ASSIGN_ORG = "assignableOrgPopup";

private static final String ID_MODAL_DELETE_ASSIGNMENT = "deleteAssignmentPopup";

private LoadableModel<List<AssignmentEditorDto>> assignmentModel;
Expand Down Expand Up @@ -212,11 +216,42 @@ protected void onUpdate(AjaxRequestTarget target) {
private void initModalWindows(){
ModalWindow assignWindow = createModalWindow(ID_MODAL_ASSIGN,
createStringResource("AssignmentTablePanel.modal.title.selectAssignment"), 1100, 560);
assignWindow.setContent(new AssignablePopupContent(assignWindow.getContentId()){
assignWindow.setContent(new AssignableRolePopupContent(assignWindow.getContentId()){

@Override
protected void addPerformed(AjaxRequestTarget target, List<ObjectType> selected){
addSelectedAssignablePerformed(target, selected);
addSelectedAssignablePerformed(target, selected, ID_MODAL_ASSIGN);
}

@Override
public ObjectQuery getProviderQuery(){
if(getExcludeOid() == null){
return null;
} else {
ObjectQuery query = new ObjectQuery();
List<String> oids = new ArrayList<>();
oids.add(getExcludeOid());

ObjectFilter oidFilter = InOidFilter.createInOid(oids);
query.setFilter(NotFilter.createNot(oidFilter));
return query;
}
}

@Override
protected void handlePartialError(OperationResult result) {
AssignmentTablePanel.this.handlePartialError(result);
}
});
add(assignWindow);

assignWindow = createModalWindow(ID_MODAL_ASSIGN_ORG,
createStringResource("AssignmentTablePanel.modal.title.selectAssignment"), 1100, 560);
assignWindow.setContent(new AssignableOrgPopupContent(assignWindow.getContentId()){

@Override
protected void addPerformed(AjaxRequestTarget target, List<ObjectType> selected){
addSelectedAssignablePerformed(target, selected, ID_MODAL_ASSIGN_ORG);
}

@Override
Expand Down Expand Up @@ -289,7 +324,7 @@ public void onClick(AjaxRequestTarget target){

@Override
public void onClick(AjaxRequestTarget target){
showAssignablePopupPerformed(target, OrgType.class, OrgType.F_NAME);
showAssignableOrgPopupPerformed(target);
}
});
items.add(item);
Expand Down Expand Up @@ -330,11 +365,18 @@ private void showModalWindow(String id, AjaxRequestTarget target){
private void showAssignablePopupPerformed(AjaxRequestTarget target, Class<? extends ObjectType> type,
QName searchParameter){
ModalWindow modal = (ModalWindow) get(ID_MODAL_ASSIGN);
AssignablePopupContent content = (AssignablePopupContent)modal.get(modal.getContentId());
AssignableRolePopupContent content = (AssignableRolePopupContent)modal.get(modal.getContentId());
content.setType(type);
content.setSearchParameter(searchParameter);
showModalWindow(ID_MODAL_ASSIGN, target);
}

private void showAssignableOrgPopupPerformed(AjaxRequestTarget target){
ModalWindow modal = (ModalWindow) get(ID_MODAL_ASSIGN);
AssignableOrgPopupContent content = (AssignableOrgPopupContent)modal.get(modal.getContentId());
content.setType(OrgType.class);
showModalWindow(ID_MODAL_ASSIGN, target);
}

private void deleteAssignmentPerformed(AjaxRequestTarget target){
List<AssignmentEditorDto> selected = getSelectedAssignments();
Expand Down Expand Up @@ -363,8 +405,8 @@ private void deleteAssignmentConfirmedPerformed(AjaxRequestTarget target, List<A
target.add(getPageBase().getFeedbackPanel(), get(ID_ASSIGNMENTS));
}

private void addSelectedAssignablePerformed(AjaxRequestTarget target, List<ObjectType> newAssignments){
ModalWindow window = (ModalWindow) get(ID_MODAL_ASSIGN);
private void addSelectedAssignablePerformed(AjaxRequestTarget target, List<ObjectType> newAssignments, String popupId){
ModalWindow window = (ModalWindow) get(popupId);
window.close(target);

if(newAssignments.isEmpty()){
Expand Down
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" ?>

<!--
~ Copyright (c) 2010-2013 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.
-->
<wicket:panel xmlns:wicket="http://wicket.apache.org">

<!-- todo fix styles for all header with cog, it must be unified somehow !!!! [lazyman] -->
<div class="row">
<div class="col-md-12 clearfix">
<form class="form-inline pull-right search-form" wicket:id="searchForm">
<div wicket:id="basicSearch"/>
</form>
</div>
<div class="col-md-4">
<div wicket:id="treeHeader" class="row" style="margin: 0; border-bottom: 1px solid #ddd;">
<div class="col-xs-9" style="padding-left: 5px;">
<div class="tree-table-header">
<wicket:message key="TreeTablePanel.hierarchy"/>
</div>
</div>
<div class="col-xs-3 cog" style="padding-right: 5px; margin-top: 2px;" wicket:id="treeMenu"/>
</div>

<div wicket:id="treeContainer" class="org-tree-container">
<div wicket:id="tree"/>
</div>
</div>
<div class="col-md-8">
<form class="clearfix form-horizontal" wicket:id="form">
<div wicket:id="childOrgContainer">
<div class="tree-table-header">
<wicket:message key="TreeTablePanel.childOrg"/>
</div>
<div wicket:id="childUnitTable"/>
</div>

</form>
</div>
</div>
</wicket:panel>

0 comments on commit 2aafddc

Please sign in to comment.