Skip to content

Commit

Permalink
unifying role, org and user page
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Sep 17, 2015
1 parent 3ab4660 commit 251013c
Show file tree
Hide file tree
Showing 15 changed files with 1,328 additions and 3,672 deletions.
@@ -0,0 +1,82 @@
package com.evolveum.midpoint.web.page.admin;

import java.util.List;

import org.apache.wicket.model.Model;

import com.evolveum.midpoint.prism.PrismContainerDefinition;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.PrismObjectDefinition;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.schema.SchemaRegistry;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.web.component.assignment.AssignmentTableDto;
import com.evolveum.midpoint.web.component.assignment.AssignmentTablePanel;
import com.evolveum.midpoint.web.component.form.Form;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;

public abstract class PageAdminAbstractRole <T extends AbstractRoleType> extends PageAdminFocus<T> {



private static final String ID_INDUCEMENTS_TABLE = "inducementsPanel";

@Override
protected void prepareFocusDeltaForModify(ObjectDelta<T> focusDelta) throws SchemaException {
super.prepareFocusDeltaForModify(focusDelta);

// handle inducements
SchemaRegistry registry = getPrismContext().getSchemaRegistry();
PrismObjectDefinition objectDefinition = registry
.findObjectDefinitionByCompileTimeClass(getCompileTimeClass());

PrismContainerDefinition inducementDef = objectDefinition
.findContainerDefinition(OrgType.F_INDUCEMENT);
AssignmentTablePanel inducementPanel = (AssignmentTablePanel) get(createComponentPath(ID_MAIN_FORM,
ID_INDUCEMENTS_TABLE));
inducementPanel.handleAssignmentDeltas(focusDelta, inducementDef, AbstractRoleType.F_INDUCEMENT);
}

@Override
protected void prepareFocusForAdd(PrismObject<T> focus) throws SchemaException {
super.prepareFocusForAdd(focus);
// handle inducements
SchemaRegistry registry = getPrismContext().getSchemaRegistry();
PrismObjectDefinition orgDef = registry
.findObjectDefinitionByCompileTimeClass(getCompileTimeClass());
PrismContainerDefinition inducementDef = orgDef.findContainerDefinition(AbstractRoleType.F_INDUCEMENT);
AssignmentTablePanel inducementPanel = (AssignmentTablePanel) get(createComponentPath(ID_MAIN_FORM,
ID_INDUCEMENTS_TABLE));
inducementPanel.handleAssignmentsWhenAdd(focus, inducementDef, focus.asObjectable()
.getInducement());

}

@Override
protected void initCustomLayout(Form mainForm) {
AssignmentTablePanel inducements = initInducements();
mainForm.add(inducements);

}


private AssignmentTablePanel initInducements() {
AssignmentTablePanel inducements = new AssignmentTablePanel(ID_INDUCEMENTS_TABLE,
new Model<AssignmentTableDto>(), createStringResource("PageOrgUnit.title.inducements")) {

@Override
public List<AssignmentType> getAssignmentTypeList() {
return ((AbstractRoleType) getFocusWrapper().getObject().asObjectable()).getInducement();
}

@Override
public String getExcludeOid() {
return getFocusWrapper().getObject().asObjectable().getOid();
}
};
return inducements;
}
}

Large diffs are not rendered by default.

@@ -0,0 +1,52 @@
#
# 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.
#



pageAdminFocus.message.illegalAccountState=Illegal shadow state '{0}'.
pageAdminFocus.message.illegalAccountState=Illegal assignment state '{0}'.
pageAdminFocus.message.noAssignmentsAvailable=There are currently no assignments to preview.
pageAdminFocus.menu.assignShadow=Assign resource
pageAdminFocus.menu.assignRole=Assign role
pageAdminFocus.menu.assignOrg=Assign org. unit
pageAdminFocus.menu.unassign=Unassign
pageAdminFocus.button.addShadow=Add projection
pageAdminFocus.button.enable=Enable
pageAdminFocus.button.disable=Disable
pageAdminFocus.button.unlink=Unlink
pageAdminFocus.button.unlock=Unlock
pageAdminFocus.button.delete=Delete
pageAdminFocus.message.couldntCreateAccountNoSchema=Couldn't create projection form for '{0}', no refined schema available. Possible problem with connector configuration and/or connection. Please check logs for more information.
pageAdminFocus.message.couldntCreateAccount=Couldn't create projection form for '{0}', reason: {1}.
pageAdminFocus.message.noAssignableSelected=No assignment selected.
pageAdminFocus.message.couldntAssignObject=Couldn't assign object '{0}', reason: {1}.
pageAdminFocus.message.noActivationFound=No activation found for projection '{0}'.
pageAdminFocus.message.noEnabledPropertyFound=No enabled property found for account '{0}'.
pageAdminFocus.message.noAccountSelected=No projection selected.
pageAdminFocus.message.noAssignmentSelected=No assignment selected.
pageAdminFocus.title.selectResourceSelect resource(s)
pageAdminFocus.title.selectAssignable=Select object(s)
pageAdminFocus.task.name=Task name
pageAdminFocus.task.category=Category
pageAdminFocus.task.execution=Execution state
pageAdminFocus.task.status=Status
pageAdminFocus.button.save=Save
pageAdminFocus.button.abort=Abort
pageAdminFocus.button.recompute.assignments=Show all assignments
pageAdminFocus.button.back=Back
pageAdminFocus.title.confirmDelete=Confirm delete
pageAdminFocus.message.deleteAccountConfirm=Do you really want to delete {0} projection(s)?
pageAdminFocus.message.deleteAssignmentConfirm=Do you really want to delete {0} assignment(s)?
Expand Up @@ -17,62 +17,55 @@
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<body>
<wicket:extend>
<div wicket:id="ownerChooser" />
<div wicket:id="resourcePopup" />
<div wicket:id="assignablePopup" />
<div wicket:id="assignableOrgPopup" />

<form wicket:id="mainForm" class="form-horizontal">
<div wicket:id="confirmDeleteShadowPopup"/>
<div wicket:id="confirmDeleteAssignmentPopup"/>


<form wicket:id="mainForm" autocomplete="off" class="form-horizontal">

<div class="row">
<div class="col-md-6">
<h3 style="margin-left: 20px;"><wicket:message key="PageRoleEditor.subtitle.basic"/></h3>
<div class="form-group" wicket:id="name" />
<div class="form-group" wicket:id="displayName"/>
<div class="form-group" wicket:id="description" />
<div class="form-group" wicket:id="roleType" />
<div class="form-group" wicket:id="requestable" />
<div class="form-group" wicket:id="identifier"/>
<div class="form-group" wicket:id="riskLevel"/>

<!-- Owner ref -->
<div class="form-group">
<span class="col-md-4 control-label">
<label><wicket:message key="PageRoleEditor.label.ownerRef"/></label>
</span>

<div wicket:id="ownerRefWrapper" class="col-md-6">
<div class="input-group input-group-sm">
<span class="input-group-btn">
<button wicket:id="ownerRefEdit" class="btn btn-primary" type="button">
<wicket:message key="PageBase.button.edit" />
</button>
</span>
<input type="text" class="form-control input-sm" wicket:id="ownerRefLabel" />
<div wicket:id="focusForm"/>
<div class="form-group" wicket:id="minAssignmentsConfig" />
<div class="form-group" wicket:id="maxAssignmentsConfig" />
</div>
<div class="col-md-6">
<div wicket:id="shadows">
<div class="row assignable-header">
<div class="col-xs-10">
<input type="checkbox" wicket:id="shadowCheckAll"/>
<h3><wicket:message key="pageRole.shadows"/></h3>
</div>
<div class="col-xs-2 cog" wicket:id="shadowMenu" about="shadowMenu" />
</div>
<div wicket:id="shadowList">
<div wicket:id="shadow" />
</div>
</div>

<!-- <div wicket:id="inducementsPanel" /> -->

<!-- Approver ref -->
<div class="form-group" wicket:id="approverRef" />

<!-- Min and Max assignments configuration -->
<div class="form-group" wicket:id="minAssignmentsConfig" />
<div class="form-group" wicket:id="maxAssignmentsConfig" />

<!-- Activation -->
<h3 style="margin-left: 20px;"><wicket:message key="PageRoleEditor.subtitle.activation"/></h3>
<div class="form-group" wicket:id="adminStatus" />
<div class="form-group" wicket:id="dateFrom" />
<div class="form-group" wicket:id="dateTo" />

<!--Extension-->
<h3 wicket:id="extensionLabel" style="margin-left: 20px;"></h3>
<div class="form-group" wicket:id="extension">
<div wicket:id="property"/>
<div wicket:id="assignments" style="margin-top: 30px;">
<div class="row assignable-header">
<div class="col-xs-10">
<input type="checkbox" wicket:id="assignmentCheckAll"/>
<h3><wicket:message key="pageRole.assignments"/></h3>
</div>
<div class="col-xs-2 cog" wicket:id="assignmentMenu"/>
</div>
<div wicket:id="assignmentList">
<div wicket:id="assignmentEditor" class="assignment-item" />
</div>
</div>
</div>

<div class="col-md-6">
<div wicket:id="inducementsPanel" />
<div wicket:id="assignmentsPanel" style="margin-top: 30px" />
<div wicket:id="tasks">
<h3><wicket:message key="pageRole.tasks"/></h3>
<div wicket:id="taskTable"/>
</div>
</div>
</div>

Expand All @@ -82,13 +75,88 @@ <h3 wicket:id="extensionLabel" style="margin-left: 20px;"></h3>

<div class="main-button-bar">
<span class="button-group">
<a class="btn btn-default" wicket:id="backButton" />
<a class="btn btn-default" wicket:id="back"/>
</span>
<a class="btn btn-primary" wicket:id="saveButton" />
<a class="btn btn-danger" wicket:id="abortButton"/>
<!-- todo implement previes -->
<a class="btn btn-info" wicket:id="recomputeAssignments" />
<a class="btn btn-primary" wicket:id="save"/>
<a class="btn btn-danger" wicket:id="abort"/>
</div>

</form>

<!-- <div wicket:id="ownerChooser" /> -->

<!-- <form wicket:id="mainForm" class="form-horizontal"> -->

<!-- <div class="row"> -->
<!-- <div class="col-md-6"> -->
<!-- <h3 style="margin-left: 20px;"><wicket:message key="PageRoleEditor.subtitle.basic"/></h3> -->
<!-- <div class="form-group" wicket:id="name" /> -->
<!-- <div class="form-group" wicket:id="displayName"/> -->
<!-- <div class="form-group" wicket:id="description" /> -->
<!-- <div class="form-group" wicket:id="roleType" /> -->
<!-- <div class="form-group" wicket:id="requestable" /> -->
<!-- <div class="form-group" wicket:id="identifier"/> -->
<!-- <div class="form-group" wicket:id="riskLevel"/> -->

<!-- Owner ref -->
<!-- <div class="form-group"> -->
<!-- <span class="col-md-4 control-label"> -->
<!-- <label><wicket:message key="PageRoleEditor.label.ownerRef"/></label> -->
<!-- </span> -->

<!-- <div wicket:id="ownerRefWrapper" class="col-md-6"> -->
<!-- <div class="input-group input-group-sm"> -->
<!-- <span class="input-group-btn"> -->
<!-- <button wicket:id="ownerRefEdit" class="btn btn-primary" type="button"> -->
<!-- <wicket:message key="PageBase.button.edit" /> -->
<!-- </button> -->
<!-- </span> -->
<!-- <input type="text" class="form-control input-sm" wicket:id="ownerRefLabel" /> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->

<!-- Approver ref -->
<!-- <div class="form-group" wicket:id="approverRef" /> -->

<!-- Min and Max assignments configuration -->
<!-- <div class="form-group" wicket:id="minAssignmentsConfig" /> -->
<!-- <div class="form-group" wicket:id="maxAssignmentsConfig" /> -->

<!-- Activation -->
<!-- <h3 style="margin-left: 20px;"><wicket:message key="PageRoleEditor.subtitle.activation"/></h3> -->
<!-- <div class="form-group" wicket:id="adminStatus" /> -->
<!-- <div class="form-group" wicket:id="dateFrom" /> -->
<!-- <div class="form-group" wicket:id="dateTo" /> -->

<!-- Extension -->
<!-- <h3 wicket:id="extensionLabel" style="margin-left: 20px;"></h3> -->
<!-- <div class="form-group" wicket:id="extension"> -->
<!-- <div wicket:id="property"/> -->
<!-- </div> -->
<!-- </div> -->

<!-- <div class="col-md-6"> -->
<!-- <div wicket:id="inducementsPanel" /> -->
<!-- <div wicket:id="assignmentsPanel" style="margin-top: 30px" /> -->
<!-- </div> -->
<!-- </div> -->

<!-- <div style="margin: 20px 0;" class="form-group" wicket:id="executeOptions" /> -->

<!-- <div wicket:id="progressPanel">[Status indicator here]</div> -->

<!-- <div class="main-button-bar"> -->
<!-- <span class="button-group"> -->
<!-- <a class="btn btn-default" wicket:id="backButton" /> -->
<!-- </span> -->
<!-- <a class="btn btn-primary" wicket:id="saveButton" /> -->
<!-- <a class="btn btn-danger" wicket:id="abortButton"/> -->
<!-- </div> -->

<!-- </form> -->
</wicket:extend>
</body>
</html>

0 comments on commit 251013c

Please sign in to comment.