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 14, 2016
2 parents 92c5fb4 + 67bb54e commit 9e6e071
Show file tree
Hide file tree
Showing 86 changed files with 3,673 additions and 1,223 deletions.
Expand Up @@ -131,7 +131,7 @@
<span class="page-title" wicket:id="pageTitle">
<span wicket:id="pageTitleReal"></span>
</span>
<img id="ajax_busy" src="img/ajax-loader.gif"/>
<img id="ajax_busy" src="img/ajax-loader.gif" style="margin-top: -8px; margin-left: 5px;" />
</div>

<!-- Navbar Right Menu -->
Expand Down
Expand Up @@ -32,23 +32,15 @@ public class BreadcrumbPageClass extends Breadcrumb {
private Class<? extends WebPage> page;
private PageParameters parameters;

public BreadcrumbPageClass(IModel<String> label) {
super(label);

setUseLink(true);
}

public BreadcrumbPageClass(IModel<String> label, Class<? extends WebPage> page) {
this(label, page, null);
}

public BreadcrumbPageClass(IModel<String> label, Class<? extends WebPage> page, PageParameters parameters) {
super(label);

Validate.notNull(page, "Page class must not be null");

this.page = page;
this.parameters = parameters;

setUseLink(true);
}

public Class<? extends WebPage> getPage() {
Expand Down
@@ -0,0 +1,29 @@
<!DOCTYPE html>
<!--
~ Copyright (c) 2010-2016 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">
<div wicket:id="panel">
<p align="center">
<span wicket:id="confirmText" />
</p>

<p align="center">
<a class="btn btn-primary btn-sm" wicket:id="yes" />
<a class="btn btn-default btn-sm" wicket:id="no" />
</p>
</div>
</wicket:panel>
@@ -0,0 +1,123 @@
/*
* Copyright (c) 2010-2016 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.
*/

package com.evolveum.midpoint.web.component.dialog;

import com.evolveum.midpoint.web.component.AjaxButton;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.StringResourceModel;

/**
* Created by Honchar.
*
* class is created based on the ConfirmationDialog.
* ConfirmationPanel panel is to be added
* to main popup (from PageBase class) as a content
*
*/
public class ConfirmationPanel extends Panel{
private static final String ID_PANEL = "panel";
private static final String ID_CONFIRM_TEXT = "confirmText";
private static final String ID_YES = "yes";
private static final String ID_NO = "no";

private int confirmType;

public ConfirmationPanel(String id) {
this(id, null);
}

public ConfirmationPanel(String id, IModel<String> message) {
super(id);

if (message == null) {
message = new Model();
}
initLayout(message);
}

public boolean getLabelEscapeModelStrings(){
return true;
}

public void setMessage(IModel<String> message) {
Label label = (Label) get(ID_PANEL).get(ID_CONFIRM_TEXT);
label.setDefaultModel(message);
}

private void initLayout(IModel<String> message) {
WebMarkupContainer panel = new WebMarkupContainer(ID_PANEL);

Label label = new Label(ID_CONFIRM_TEXT, message);
label.setEscapeModelStrings(getLabelEscapeModelStrings());
panel.add(label);

AjaxButton yesButton = new AjaxButton(ID_YES, new StringResourceModel("confirmationDialog.yes",
this, null)) {

@Override
public void onClick(AjaxRequestTarget target) {
yesPerformed(target);
}
};
panel.add(yesButton);

AjaxButton noButton = new AjaxButton(ID_NO, new StringResourceModel("confirmationDialog.no",
this, null)) {

@Override
public void onClick(AjaxRequestTarget target) {
noPerformed(target);
}
};
panel.add(noButton);
add(panel);
}

public void yesPerformed(AjaxRequestTarget target) {

}

public void noPerformed(AjaxRequestTarget target) {
ModalWindow modalWindow = findParent(ModalWindow.class);
if (modalWindow != null) {
modalWindow.close(target);
}
}

/**
* @return confirmation type identifier
*/
public int getConfirmType() {
return confirmType;
}

/**
* This method provides solution for reusing one confirmation dialog for more messages/actions
* by using confirmType identifier. See for example {@link com.evolveum.midpoint.web.page.admin.users.component.TreeTablePanel}
*
* @param confirmType
*/
public void setConfirmType(int confirmType) {
this.confirmType = confirmType;
}
}
Expand Up @@ -18,11 +18,13 @@
import javax.xml.namespace.QName;

import org.apache.commons.lang.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;

Expand Down Expand Up @@ -135,6 +137,13 @@ protected void showModalWindow(String id, AjaxRequestTarget target) {
target.add(getFeedbackPanel());
}

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

protected void addPrismPropertyPanel(MarkupContainer parentComponent, String id, QName propertyName) {
addPrismPropertyPanel(parentComponent, id, new ItemPath(propertyName));
}
Expand Down
Expand Up @@ -21,59 +21,37 @@
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.query.*;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.exception.SystemException;
import com.evolveum.midpoint.util.logging.LoggingUtils;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.assignment.AssignmentEditorDto;
import com.evolveum.midpoint.web.component.assignment.AssignmentTablePanel;
import com.evolveum.midpoint.web.component.data.TablePanel;
import com.evolveum.midpoint.web.component.dialog.ConfirmationDialog;
import com.evolveum.midpoint.web.component.dialog.ConfirmationPanel;
import com.evolveum.midpoint.web.component.form.Form;
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.component.prism.*;
import com.evolveum.midpoint.web.component.util.ObjectWrapperUtil;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.server.PageTasks;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDto;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDtoProvider;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDtoProviderOptions;
import com.evolveum.midpoint.web.page.admin.users.component.*;
import com.evolveum.midpoint.web.page.admin.users.dto.FocusProjectionDto;
import com.evolveum.midpoint.web.page.admin.users.dto.SimpleUserResourceProvider;
import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus;
import com.evolveum.midpoint.web.resource.img.ImgResources;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.Validate;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
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;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.*;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.resource.PackageResourceReference;
import org.apache.wicket.util.string.StringValue;

import javax.xml.namespace.QName;

Expand Down Expand Up @@ -369,7 +347,8 @@ private void deleteProjectionPerformed(AjaxRequestTarget target, IModel<List<Foc
return;
}

showModalWindow(MODAL_ID_CONFIRM_DELETE_SHADOW, target);
showModalWindow(getDeleteProjectionPopupContent(),
createStringResource("pageAdminFocus.title.confirmDelete"), target);
}

private boolean isAnyProjectionSelected(AjaxRequestTarget target,
Expand Down Expand Up @@ -444,4 +423,41 @@ private void unlinkProjectionPerformed(AjaxRequestTarget target, IModel<List<Foc
}
target.add(get(createComponentPath(componentPath)));
}

private Component getDeleteProjectionPopupContent(){
ConfirmationPanel dialog = new ConfirmationPanel(getPageBase().getMainPopupBodyId(),
new AbstractReadOnlyModel<String>() {

@Override
public String getObject() {
return createStringResource("pageAdminFocus.message.deleteAccountConfirm",
getSelectedProjections(projectionModel).size()).getString();
}
}) {

@Override
public void yesPerformed(AjaxRequestTarget target) {
ModalWindow modalWindow = findParent(ModalWindow.class);
if (modalWindow != null) {
modalWindow.close(target);
deleteAccountConfirmedPerformed(target, getSelectedProjections(projectionModel));
}
}
};
return dialog;
}

private void deleteAccountConfirmedPerformed(AjaxRequestTarget target,
List<FocusProjectionDto> selected) {
List<FocusProjectionDto> accounts = projectionModel.getObject();
for (FocusProjectionDto account : selected) {
if (UserDtoStatus.ADD.equals(account.getStatus())) {
accounts.remove(account);
} else {
account.setStatus(UserDtoStatus.DELETE);
}
}
target.add(get(createComponentPath(ID_SHADOWS)));
}

}
Expand Up @@ -46,6 +46,9 @@ public class SearchFactory {
new ItemPath(UserType.F_COST_CENTER)));
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)));

//todo add other object types and properties which can be used in search
Expand Down
Expand Up @@ -24,10 +24,7 @@

<div class="col-lg-8">
<div>
<label class="col-lg-2 checkbox-inline">
<input type="checkbox" wicket:id="edit">
<wicket:message key="pageDebugView.edit"/>
</label>

<label class="col-lg-3 checkbox-inline">
<input type="checkbox" wicket:id="encrypt">
<wicket:message key="pageDebugView.encrypt"/>
Expand Down

0 comments on commit 9e6e071

Please sign in to comment.