Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into feature/new-approva…
Browse files Browse the repository at this point in the history
…l-gui
  • Loading branch information
mederly committed Mar 16, 2016
2 parents 62188ff + 2d89e0f commit 66360cc
Show file tree
Hide file tree
Showing 67 changed files with 2,341 additions and 735 deletions.
Expand Up @@ -553,11 +553,17 @@ public void showMainPopup(AjaxRequestTarget target) {
getMainPopup().show(target);
}

public void hideMainPopup(AjaxRequestTarget target) {
getMainPopup().close(target);
}
public void showMainPopup(Component body, IModel<String> title, AjaxRequestTarget target) {
setMainPopupContent(body);
setMainPopupTitle(title);
showMainPopup(target);
}

public void hideMainPopup(AjaxRequestTarget target) {
getMainPopup().close(target);
}

private VisibleEnableBehaviour createUserStatusBehaviour(final boolean visibleIfLoggedIn) {
private VisibleEnableBehaviour createUserStatusBehaviour(final boolean visibleIfLoggedIn) {
return new VisibleEnableBehaviour() {

@Override
Expand Down Expand Up @@ -698,6 +704,7 @@ public void showResult(OperationResult result, String errorMessageKey, boolean s

}


protected String createComponentPath(String... components) {
return StringUtils.join(components, ":");
}
Expand Down
Expand Up @@ -19,7 +19,6 @@
<wicket:panel>
<div wicket:id="assignablePopup" />
<div wicket:id="assignableOrgPopup" />
<div wicket:id="deleteAssignmentPopup" />

<div wicket:id="assignments" about="assignments">
<div class="row assignable-header">
Expand Down
Expand Up @@ -34,13 +34,15 @@
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.dialog.ConfirmationDialog;
import com.evolveum.midpoint.web.component.dialog.ConfirmationPanel;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenu;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction;
import com.evolveum.midpoint.web.page.admin.users.component.*;
import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
Expand Down Expand Up @@ -77,8 +79,6 @@ public class AssignmentTablePanel<T extends ObjectType> extends BasePanel<List<A
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";

AssignableSelectionPanel.Context assignableSelectionContext;
AbstractAssignableSelectionPanel.Context assignableOrgSelectionContext;

Expand Down Expand Up @@ -227,25 +227,6 @@ public PrismObject<UserType> getUserDefinition() {
};
AssignableSelectionPage.prepareDialog(assignWindow, assignableSelectionContext, this, "AssignmentTablePanel.modal.title.selectAssignment", ID_ASSIGNMENTS);
add(assignWindow);

ModalWindow deleteDialog = new ConfirmationDialog(ID_MODAL_DELETE_ASSIGNMENT,
createStringResource("AssignmentTablePanel.modal.title.confirmDeletion"),
new AbstractReadOnlyModel<String>() {

@Override
public String getObject() {
return createStringResource("AssignmentTablePanel.modal.message.delete",
getSelectedAssignments().size()).getString();
}
}) {

@Override
public void yesPerformed(AjaxRequestTarget target) {
close(target);
deleteAssignmentConfirmedPerformed(target, getSelectedAssignments());
}
};
add(deleteDialog);
}

private List<InlineMenuItem> createAssignmentMenu() {
Expand Down Expand Up @@ -329,7 +310,11 @@ private void showModalWindow(String id, AjaxRequestTarget target) {
window.show(target);
}

private void showAssignablePopupPerformed(AjaxRequestTarget target, Class<? extends ObjectType> type,
protected void showModalWindow(Component body, IModel<String> title, AjaxRequestTarget target) {
getPageBase().showMainPopup(body, title, target);
}

private void showAssignablePopupPerformed(AjaxRequestTarget target, Class<? extends ObjectType> type,
QName searchParameter) {
assignableSelectionContext.setType(type);
assignableSelectionContext.setSearchParameter(searchParameter);
Expand All @@ -350,9 +335,31 @@ private void deleteAssignmentPerformed(AjaxRequestTarget target) {
return;
}

showModalWindow(ID_MODAL_DELETE_ASSIGNMENT, target);
showModalWindow(getDeleteAssignmentPopupContent(), createStringResource("AssignmentTablePanel.modal.title.confirmDeletion"), target);
}

private Component getDeleteAssignmentPopupContent(){
return new ConfirmationPanel(getPageBase().getMainPopupBodyId(),
new AbstractReadOnlyModel<String>() {

@Override
public String getObject() {
return createStringResource("AssignmentTablePanel.modal.message.delete",
getSelectedAssignments().size()).getString();
}
}) {

@Override
public void yesPerformed(AjaxRequestTarget target) {
ModalWindow modalWindow = findParent(ModalWindow.class);
if (modalWindow != null) {
modalWindow.close(target);
deleteAssignmentConfirmedPerformed(target, getSelectedAssignments());
}
}
};
}

private void deleteAssignmentConfirmedPerformed(AjaxRequestTarget target,
List<AssignmentEditorDto> toDelete) {
List<AssignmentEditorDto> assignments = getAssignmentModel().getObject();
Expand Down
Expand Up @@ -138,9 +138,7 @@ protected void showModalWindow(String id, AjaxRequestTarget target) {
}

protected void showModalWindow(Component body, IModel<String> title, AjaxRequestTarget target) {
getPageBase().setMainPopupContent(body);
getPageBase().setMainPopupTitle(title);
getPageBase().showMainPopup(target);
getPageBase().showMainPopup(body, title, target);
target.add(getFeedbackPanel());
}

Expand Down
Expand Up @@ -47,6 +47,7 @@

<div class="main-button-bar">
<a class="btn btn-danger" wicket:id="abort"/>
<a class="btn btn-default" wicket:id="back"/>
</div>
</form>
</wicket:panel>
Expand Down
Expand Up @@ -21,10 +21,12 @@
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.web.component.AjaxSubmitButton;
import com.evolveum.midpoint.web.component.form.Form;
import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails;
import com.evolveum.midpoint.web.page.admin.server.dto.OperationResultStatusIcon;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationResultStatusType;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Page;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
Expand Down Expand Up @@ -221,8 +223,30 @@ protected void onError(AjaxRequestTarget target,
target.add(page.getFeedbackPanel());
}
};
progressReporter.registerAbortButton(abortButton);
progressForm.add(abortButton);

progressReporter.registerAbortButton(abortButton);
progressForm.add(abortButton);

AjaxSubmitButton backButton = new AjaxSubmitButton("back",
createStringResource("pageAdminFocus.button.back")) {

@Override
protected void onSubmit(AjaxRequestTarget target,
org.apache.wicket.markup.html.form.Form<?> form) {
Page page = getPage();
if (page != null && page instanceof PageAdminObjectDetails){
setResponsePage(((PageAdminObjectDetails) page).getDefaultBackPage());
}
}

@Override
protected void onError(AjaxRequestTarget target,
org.apache.wicket.markup.html.form.Form<?> form) {
target.add(page.getFeedbackPanel());
}
};
progressReporter.registerBackButton(backButton);
progressForm.add(backButton);

}

Expand Down
Expand Up @@ -65,6 +65,7 @@ public class ProgressReporter implements Serializable {

// links to wicket artefacts on parent page
private AjaxSubmitButton abortButton;
private AjaxSubmitButton backButton;
private ProgressReportingAwarePage parentPage;
private ProgressPanel progressPanel;
private Behavior refreshingBehavior = null; // behavior is attached to the progress panel
Expand Down Expand Up @@ -213,6 +214,7 @@ public void run() {
if (abortEnabled) {
showAbortButton(target);
}
showBackButton(target);

result.recordInProgress(); // to disable showing not-final results (why does it work? and why is the result shown otherwise?)

Expand Down Expand Up @@ -266,6 +268,13 @@ public void registerAbortButton(AjaxSubmitButton abortButton) {
this.abortButton = abortButton;
}

public void registerBackButton(AjaxSubmitButton backButton) {
backButton.setOutputMarkupId(true);
backButton.setOutputMarkupPlaceholderTag(true);
backButton.setVisible(false);
this.backButton = backButton;
}

/**
* You have to call this method when Abort button is pressed
*/
Expand All @@ -288,7 +297,7 @@ public void onAbortSubmit(AjaxRequestTarget target) {
hideAbortButton(target);
}

private void hideAbortButton(AjaxRequestTarget target) {
public void hideAbortButton(AjaxRequestTarget target) {
abortButton.setVisible(false);
target.add(abortButton);
}
Expand All @@ -298,6 +307,11 @@ public void showAbortButton(AjaxRequestTarget target) {
target.add(abortButton);
}

public void showBackButton(AjaxRequestTarget target) {
backButton.setVisible(true);
target.add(backButton);
}


// ================= Other methods =================

Expand Down
Expand Up @@ -47,14 +47,55 @@ public class SearchFactory {
SEARCHABLE_OBJECTS.put(RoleType.class, Arrays.asList(
new ItemPath(RoleType.F_NAME),
new ItemPath(RoleType.F_DISPLAY_NAME),
// new ItemPath(RoleType.F_OWNER_REF),
new ItemPath(RoleType.F_REQUESTABLE),
new ItemPath(RoleType.F_ROLE_TYPE)));
SEARCHABLE_OBJECTS.put(ConnectorHostType.class, Arrays.asList(
new ItemPath(ConnectorHostType.F_HOSTNAME)
));
SEARCHABLE_OBJECTS.put(ConnectorType.class, Arrays.asList(
new ItemPath(ConnectorType.F_CONNECTOR_BUNDLE),
new ItemPath(ConnectorType.F_CONNECTOR_VERSION),
new ItemPath(ConnectorType.F_CONNECTOR_TYPE)
));
SEARCHABLE_OBJECTS.put(AbstractRoleType.class, Arrays.asList(
new ItemPath(RoleType.F_REQUESTABLE)
));
SEARCHABLE_OBJECTS.put(OrgType.class, Arrays.asList(
new ItemPath(OrgType.F_DISPLAY_NAME),
new ItemPath(OrgType.F_COST_CENTER),
new ItemPath(OrgType.F_IDENTIFIER),
new ItemPath(OrgType.F_ORG_TYPE),
new ItemPath(OrgType.F_TENANT),
new ItemPath(OrgType.F_LOCALITY)
));
SEARCHABLE_OBJECTS.put(GenericObjectType.class, Arrays.asList(
new ItemPath(GenericObjectType.F_OBJECT_TYPE)
));
SEARCHABLE_OBJECTS.put(NodeType.class, Arrays.asList(
new ItemPath(NodeType.F_NODE_IDENTIFIER)
));
SEARCHABLE_OBJECTS.put(ReportType.class, Arrays.asList(
new ItemPath(ReportType.F_PARENT)
));
SEARCHABLE_OBJECTS.put(ShadowType.class, Arrays.asList(
new ItemPath(ShadowType.F_OBJECT_CLASS),
new ItemPath(ShadowType.F_DEAD),
new ItemPath(ShadowType.F_INTENT),
new ItemPath(ShadowType.F_EXISTS)
));
SEARCHABLE_OBJECTS.put(TaskType.class, Arrays.asList(
new ItemPath(TaskType.F_TASK_IDENTIFIER),
new ItemPath(TaskType.F_NODE),
new ItemPath(TaskType.F_CATEGORY),
new ItemPath(TaskType.F_RESULT_STATUS)
));
}

//todo add other object types and properties which can be used in search
public static <T extends ObjectType> Search createSearch(Class<T> type, PrismContext ctx) {
return createSearch(type, ctx, true);
}

public static <T extends ObjectType> Search createSearch(Class<T> type, PrismContext ctx, boolean useDefsFromSuperclass) {
public static <T extends ObjectType> Search createSearch(Class<T> type, PrismContext ctx,
boolean useDefsFromSuperclass) {
Map<ItemPath, ItemDefinition> availableDefs = getAvailableDefinitions(type, ctx, useDefsFromSuperclass);

Search search = new Search(type, availableDefs);
Expand All @@ -80,7 +121,7 @@ private static <T extends ObjectType> Map<ItemPath, ItemDefinition> getAvailable
if (pathList != null) {
map.putAll(createAvailableDefinitions(typeClass, ctx, pathList));
}
if (!useDefsFromSuperclass){
if (!useDefsFromSuperclass) {
break;
}
typeClass = (Class<T>) typeClass.getSuperclass();
Expand Down
Expand Up @@ -110,6 +110,14 @@ public void onClick(AjaxRequestTarget target) {
togglePopover(target, button, popover, 14);
}
};
more.add(new VisibleEnableBehaviour() {

@Override
public boolean isVisible() {
Search search = getModelObject();
return !search.getAvailableDefinitions().isEmpty();
}
});
more.setOutputMarkupId(true);
form.add(more);

Expand Down
Expand Up @@ -203,7 +203,9 @@ public void finishProcessing(AjaxRequestTarget target, OperationResult result) {
}
goBackPage();
} else {
showResult(result);
getProgressReporter().showBackButton(target);
getProgressReporter().hideAbortButton(target);
showResult(result);
target.add(getFeedbackPanel());

// if we only stayed on the page because of displaying results, hide
Expand Down
Expand Up @@ -808,7 +808,7 @@ public void goBackPage() {
}
}

protected abstract PageBase getDefaultBackPage();
public abstract PageBase getDefaultBackPage();

public List<ObjectFormType> getObjectFormTypes() {
Task task = createSimpleTask(OPERATION_LOAD_GUI_CONFIGURATION);
Expand Down
Expand Up @@ -20,12 +20,6 @@
<body>
<wicket:extend>

<div wicket:id="confirmCloseStagePopup"/>
<div wicket:id="confirmDeleteMultipleCampaignsPopup"/>
<div wicket:id="confirmDeleteCampaignPopup"/>
<div wicket:id="confirmCloseCampaignPopup"/>
<div wicket:id="confirmCloseMultipleCampaignsPopup"/>

<form wicket:id="mainForm" class="form-inline">
<div wicket:id="campaignsTable"/>
</form>
Expand Down

0 comments on commit 66360cc

Please sign in to comment.