You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2013/10/07 16:38:57 UTC
svn commit: r1529856 [2/3] - in /syncope/trunk:
common/src/main/java/org/apache/syncope/common/services/
common/src/main/java/org/apache/syncope/common/to/ console/
console/src/main/java/org/apache/syncope/console/commons/
console/src/main/java/org/apa...
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java Mon Oct 7 14:38:55 2013
@@ -67,7 +67,7 @@ public abstract class TaskModalPage exte
protected WebMarkupContainer executions;
- protected Form form;
+ protected Form<AbstractTaskTO> form;
public TaskModalPage(final AbstractTaskTO taskTO) {
final ModalWindow taskExecMessageWin = new ModalWindow("taskExecMessageWin");
@@ -75,8 +75,8 @@ public abstract class TaskModalPage exte
taskExecMessageWin.setCookieName("task-exec-message-win-modal");
add(taskExecMessageWin);
- form = new Form(FORM);
- form.setModel(new CompoundPropertyModel(taskTO));
+ form = new Form<AbstractTaskTO>(FORM);
+ form.setModel(new CompoundPropertyModel<AbstractTaskTO>(taskTO));
add(form);
profile = new WebMarkupContainer("profile");
@@ -96,17 +96,17 @@ public abstract class TaskModalPage exte
id.setEnabled(false);
profile.add(id);
- final List<IColumn> columns = new ArrayList<IColumn>();
+ final List<IColumn<TaskExecTO, String>> columns = new ArrayList<IColumn<TaskExecTO, String>>();
final int paginatorRows = 10;
- columns.add(new PropertyColumn(new ResourceModel("id"), "id", "id"));
+ columns.add(new PropertyColumn<TaskExecTO, String>(new ResourceModel("id"), "id", "id"));
- columns.add(new DatePropertyColumn(new ResourceModel("startDate"), "startDate", "startDate"));
+ columns.add(new DatePropertyColumn<TaskExecTO>(new ResourceModel("startDate"), "startDate", "startDate"));
- columns.add(new DatePropertyColumn(new ResourceModel("endDate"), "endDate", "endDate"));
+ columns.add(new DatePropertyColumn<TaskExecTO>(new ResourceModel("endDate"), "endDate", "endDate"));
- columns.add(new PropertyColumn(new ResourceModel("status"), "status", "status"));
+ columns.add(new PropertyColumn<TaskExecTO, String>(new ResourceModel("status"), "status", "status"));
columns.add(new ActionColumn<TaskExecTO, String>(new ResourceModel("actions", "")) {
@@ -173,8 +173,8 @@ public abstract class TaskModalPage exte
@Override
public void onClick(final AjaxRequestTarget target) {
if (target != null) {
- final AjaxFallbackDefaultDataTable currentTable =
- new AjaxFallbackDefaultDataTable("executionsTable", columns,
+ final AjaxFallbackDefaultDataTable<TaskExecTO, String> currentTable =
+ new AjaxFallbackDefaultDataTable<TaskExecTO, String>("executionsTable", columns,
new TaskExecutionsProvider(getCurrentTaskExecution(taskTO)), paginatorRows);
currentTable.setOutputMarkupId(true);
target.add(currentTable);
@@ -187,7 +187,8 @@ public abstract class TaskModalPage exte
}
});
- final AjaxFallbackDefaultDataTable table = new AjaxFallbackDefaultDataTable("executionsTable", columns,
+ final AjaxFallbackDefaultDataTable<TaskExecTO, String> table =
+ new AjaxFallbackDefaultDataTable<TaskExecTO, String>("executionsTable", columns,
new TaskExecutionsProvider(getCurrentTaskExecution(taskTO)), paginatorRows);
executions.add(table);
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Tasks.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Tasks.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Tasks.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Tasks.java Mon Oct 7 14:38:55 2013
@@ -151,7 +151,7 @@ public class Tasks extends BasePage {
public Iterator<T> iterator(final long first, final long count) {
final List<T> tasks = new ArrayList<T>();
- for (T task : (List<T>) restClient.listTasks(reference, ((int) first / paginatorRows) + 1, paginatorRows)) {
+ for (T task : restClient.listTasks(reference, ((int) first / paginatorRows) + 1, paginatorRows)) {
if (task instanceof SchedTaskTO && ((SchedTaskTO) task).getLastExec() == null
&& task.getExecutions() != null && !task.getExecutions().isEmpty()) {
@@ -197,7 +197,7 @@ public class Tasks extends BasePage {
*/
public static AjaxDataTablePanel<AbstractTaskTO, String> updateTaskTable(
final List<IColumn<AbstractTaskTO, String>> columns,
- final TasksProvider dataProvider,
+ final TasksProvider<? extends AbstractTaskTO> dataProvider,
final WebMarkupContainer container,
final int currentPage,
final PageReference pageRef,
@@ -208,8 +208,8 @@ public class Tasks extends BasePage {
columns,
(ISortableDataProvider<AbstractTaskTO, String>) dataProvider,
dataProvider.paginatorRows,
- Arrays.asList(new ActionLink.ActionType[]{
- ActionLink.ActionType.DELETE, ActionLink.ActionType.DRYRUN, ActionLink.ActionType.EXECUTE}),
+ Arrays.asList(new ActionLink.ActionType[] {
+ ActionLink.ActionType.DELETE, ActionLink.ActionType.DRYRUN, ActionLink.ActionType.EXECUTE}),
restClient,
"id",
TASKS,
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java Mon Oct 7 14:38:55 2013
@@ -55,9 +55,9 @@ public class VirtualSchemaModalPage exte
schema = new VirSchemaTO();
}
- final Form schemaForm = new Form(FORM);
+ final Form<AbstractBaseBean> schemaForm = new Form<AbstractBaseBean>(FORM);
- schemaForm.setModel(new CompoundPropertyModel(schema));
+ schemaForm.setModel(new CompoundPropertyModel<AbstractBaseBean>(schema));
final AjaxTextFieldPanel name = new AjaxTextFieldPanel("name", getString("name"), new PropertyModel<String>(
schema, "name"));
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchResultPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchResultPanel.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchResultPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchResultPanel.java Mon Oct 7 14:38:55 2013
@@ -84,7 +84,7 @@ public abstract class AbstractSearchResu
/**
* Schemas to be shown modal window width.
*/
- private final static int STATUS_MODAL_WIN_WIDTH = 500;
+ private final static int STATUS_MODAL_WIN_WIDTH = 700;
/**
* Application preferences.
Copied: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ActionDataTablePanel.java (from r1525003, syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AjaxDataTablePanel.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ActionDataTablePanel.java?p2=syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ActionDataTablePanel.java&p1=syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AjaxDataTablePanel.java&r1=1525003&r2=1529856&rev=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AjaxDataTablePanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ActionDataTablePanel.java Mon Oct 7 14:38:55 2013
@@ -21,35 +21,36 @@ package org.apache.syncope.console.pages
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import org.apache.syncope.console.commons.Constants;
-import org.apache.syncope.console.pages.AbstractBasePage;
-import org.apache.syncope.console.pages.BulkActionModalPage;
-import org.apache.syncope.console.pages.panels.AbstractSearchResultPanel.EventDataWrapper;
-import org.apache.syncope.console.rest.BaseRestClient;
+import org.apache.syncope.console.commons.ActionTableCheckGroup;
import org.apache.syncope.console.wicket.ajax.markup.html.ClearIndicatingAjaxButton;
import org.apache.syncope.console.wicket.extensions.markup.html.repeater.data.table.CheckGroupColumn;
import org.apache.syncope.console.wicket.markup.html.form.ActionLink;
-import org.apache.wicket.Page;
+import org.apache.syncope.console.wicket.markup.html.form.ActionLink.ActionType;
+import org.apache.syncope.console.wicket.markup.html.form.ActionLinksPanel;
+import org.apache.wicket.AttributeModifier;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.event.Broadcast;
+import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider;
+import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.CheckGroup;
import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class AjaxDataTablePanel<T, S> extends Panel {
+public class ActionDataTablePanel<T, S> extends Panel {
/**
* Logger.
*/
- protected static final Logger LOG = LoggerFactory.getLogger(AjaxDataTablePanel.class);
+ protected static final Logger LOG = LoggerFactory.getLogger(ActionDataTablePanel.class);
private static final long serialVersionUID = -8826989026203543957L;
@@ -57,109 +58,72 @@ public class AjaxDataTablePanel<T, S> ex
private final Form bulkActionForm;
- private final AjaxFallbackDefaultDataTable<T, S> dataTable;
-
- public AjaxDataTablePanel(
- final String id,
- final List<IColumn<T, S>> columns,
- final ISortableDataProvider<T, S> dataProvider,
- final int rowsPerPage) {
- super(id);
+ private final ActionLinksPanel actionPanel;
- this.bulkActionForm = null;
- this.group = null;
- dataTable = new AjaxFallbackDefaultDataTable<T, S>("dataTable", columns, dataProvider, rowsPerPage);
+ private final AjaxFallbackDefaultDataTable<T, S> dataTable;
- Fragment fragment = new Fragment("tablePanel", "bulkNotAvailable", this);
- fragment.add(dataTable);
+ private final PageReference pageRef;
- add(fragment);
- }
+ private final String CANCEL = "cancel";
- public AjaxDataTablePanel(
+ public ActionDataTablePanel(
final String id,
final List<IColumn<T, S>> columns,
final ISortableDataProvider<T, S> dataProvider,
final int rowsPerPage,
- final Collection<ActionLink.ActionType> actions,
- final BaseRestClient bulkActionExecutor,
- final String itemIdFiled,
- final String pageId,
final PageReference pageRef) {
super(id);
- final ModalWindow bulkModalWin = new ModalWindow("bulkModal");
- bulkModalWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
- bulkModalWin.setInitialHeight(600);
- bulkModalWin.setInitialWidth(900);
- bulkModalWin.setCookieName("bulk-modal");
- add(bulkModalWin);
+ this.pageRef = pageRef;
+
+ bulkActionForm = new Form("groupForm");
+ add(bulkActionForm);
- bulkModalWin.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
+ group = new ActionTableCheckGroup<T>("checkgroup", new ArrayList<T>()) {
- private static final long serialVersionUID = 8804221891699487149L;
+ private static final long serialVersionUID = -8667764190925075389L;
@Override
- public void onClose(final AjaxRequestTarget target) {
- final EventDataWrapper data = new EventDataWrapper();
- data.setTarget(target);
- data.setRows(rowsPerPage);
-
- send(pageRef.getPage(), Broadcast.BREADTH, data);
-
- final AbstractBasePage page = (AbstractBasePage) pageRef.getPage();
-
- if (page.isModalResult()) {
- // reset modal result
- page.setModalResult(false);
- // set operation succeeded
- getSession().info(getString(Constants.OPERATION_SUCCEEDED));
- // refresh feedback panel
- target.add(page.getFeedbackPanel());
- }
+ public boolean isCheckable(T element) {
+ return isElementEnabled(element);
}
- });
+ };
+ bulkActionForm.add(group);
- Fragment fragment = new Fragment("tablePanel", "bulkAvailable", this);
- add(fragment);
+ group.add(new AjaxFormChoiceComponentUpdatingBehavior() {
- bulkActionForm = new Form("groupForm");
- fragment.add(bulkActionForm);
+ private static final long serialVersionUID = -151291731388673682L;
- group = new CheckGroup<T>("checkgroup", new ArrayList<T>());
- bulkActionForm.add(group);
+ @Override
+ protected void onUpdate(AjaxRequestTarget target) {
+ // ignore
+ }
+ });
columns.add(0, new CheckGroupColumn<T, S>(group));
dataTable = new AjaxFallbackDefaultDataTable<T, S>("dataTable", columns, dataProvider, rowsPerPage);
group.add(dataTable);
- fragment.add(new ClearIndicatingAjaxButton("bulkActionLink", bulkActionForm, pageRef) {
+ final WebMarkupContainer actionPanelContainer = new WebMarkupContainer("actionPanelContainer");
+ bulkActionForm.add(actionPanelContainer);
- private static final long serialVersionUID = 382302811235019988L;
+ actionPanel = new ActionLinksPanel("actions", new Model(), pageRef);
+ actionPanelContainer.add(actionPanel);
- @Override
- protected void onSubmitInternal(final AjaxRequestTarget target, final Form<?> form) {
- bulkModalWin.setPageCreator(new ModalWindow.PageCreator() {
+ if (dataTable.getRowCount() == 0) {
+ actionPanelContainer.add(new AttributeModifier("style", "display: none"));
+ }
- private static final long serialVersionUID = -7834632442532690941L;
+ bulkActionForm.add(new ClearIndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL), pageRef) {
- @Override
- public Page createPage() {
- return new BulkActionModalPage<T, S>(
- bulkModalWin,
- new ArrayList<T>(group.getModelObject()),
- columns,
- actions,
- bulkActionExecutor,
- itemIdFiled,
- pageId);
- }
- });
+ private static final long serialVersionUID = -2341391430136818025L;
- bulkModalWin.show(target);
+ @Override
+ protected void onSubmitInternal(final AjaxRequestTarget target, final Form<?> form) {
+ // ignore
}
- });
+ }.setVisible(false).setEnabled(false));
}
public final void setCurrentPage(final long page) {
@@ -181,4 +145,40 @@ public class AjaxDataTablePanel<T, S> ex
public void setItemsPerPage(final int resourcePaginatorRows) {
dataTable.setItemsPerPage(resourcePaginatorRows);
}
+
+ public void addAction(final ActionLink action, final ActionType type, final String pageId) {
+ actionPanel.add(action, type, pageId);
+ }
+
+ public void addAction(final ActionLink action, final ActionType type, final String pageId, final String actionId) {
+ actionPanel.add(action, type, pageId, actionId);
+ }
+
+ public void addAction(final ActionLink action, final ActionType type, final String pageId, final boolean enabled) {
+ actionPanel.add(action, type, pageId, enabled);
+ }
+
+ public void addCancelButton(final ModalWindow window) {
+
+ final AjaxButton cancel = new ClearIndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL), pageRef) {
+
+ private static final long serialVersionUID = -2341391430136818025L;
+
+ @Override
+ protected void onSubmitInternal(final AjaxRequestTarget target, final Form<?> form) {
+ window.close(target);
+ }
+ };
+
+ cancel.setDefaultFormProcessing(false);
+ bulkActionForm.addOrReplace(cancel);
+ }
+
+ public Collection<T> getModelObject() {
+ return group.getModelObject();
+ }
+
+ public boolean isElementEnabled(final T element) {
+ return true;
+ }
}
Added: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ImagePanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ImagePanel.java?rev=1529856&view=auto
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ImagePanel.java (added)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ImagePanel.java Mon Oct 7 14:38:55 2013
@@ -0,0 +1,40 @@
+package org.apache.syncope.console.pages.panels;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.html.image.Image;
+import org.apache.wicket.markup.html.panel.Panel;
+
+/*
+ * Copyright 2013 The Apache Software Foundation.
+ *
+ * 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.
+ */
+public class ImagePanel extends Panel {
+
+ private static final long serialVersionUID = 5564818820574092960L;
+
+ final Image img;
+
+ public ImagePanel(final String id, final String img) {
+ super(id);
+ this.img = new Image("img", img);
+ add(this.img);
+ }
+
+ @Override
+ public Component add(Behavior... behaviors) {
+ this.img.add(behaviors);
+ return this;
+ }
+}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java Mon Oct 7 14:38:55 2013
@@ -32,7 +32,7 @@ import org.apache.syncope.console.common
import org.apache.syncope.console.pages.MembershipModalPage;
import org.apache.syncope.console.pages.UserModalPage;
import org.apache.syncope.console.wicket.ajax.markup.html.ClearIndicatingAjaxLink;
-import org.apache.syncope.console.wicket.ajax.markup.html.IndicatingDeleteOnConfirmAjaxLink;
+import org.apache.syncope.console.wicket.ajax.markup.html.IndicatingOnConfirmAjaxLink;
import org.apache.syncope.console.wicket.markup.html.tree.DefaultMutableTreeNodeExpansion;
import org.apache.syncope.console.wicket.markup.html.tree.DefaultMutableTreeNodeExpansionModel;
import org.apache.syncope.console.wicket.markup.html.tree.TreeRoleProvider;
@@ -182,7 +182,7 @@ public class MembershipsPanel extends Pa
};
item.add(editLink);
- AjaxLink deleteLink = new IndicatingDeleteOnConfirmAjaxLink("deleteLink", pageRef) {
+ AjaxLink deleteLink = new IndicatingOnConfirmAjaxLink("deleteLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@@ -206,7 +206,8 @@ public class MembershipsPanel extends Pa
resourcesToRemove.removeAll(userTO.getResources());
}
- StatusUtils.update(statusPanel, target, Collections.<String>emptySet(), resourcesToRemove);
+ StatusUtils.update(
+ userTO, statusPanel, target, Collections.<String>emptySet(), resourcesToRemove);
}
};
item.add(deleteLink);
@@ -236,7 +237,8 @@ public class MembershipsPanel extends Pa
long roleId = updatedUserTO.getMembershipMap().get(diffMembId).getRoleId();
RoleTO roleTO = RoleUtils.findRole(roleTreeBuilder, roleId);
resourcesToAdd.addAll(roleTO.getResources());
- StatusUtils.update(statusPanel, target, resourcesToAdd, Collections.<String>emptySet());
+ StatusUtils.update(
+ userTO, statusPanel, target, resourcesToAdd, Collections.<String>emptySet());
}
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java Mon Oct 7 14:38:55 2013
@@ -169,7 +169,8 @@ public class ResourcesPanel extends Pane
previousResources.clear();
previousResources.addAll(userTO.getResources());
- StatusUtils.update(statusPanel, target, userTO.getResources(), resourcesToRemove);
+ StatusUtils.update(
+ userTO, statusPanel, target, userTO.getResources(), resourcesToRemove);
}
}
});
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchResultPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchResultPanel.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchResultPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchResultPanel.java Mon Oct 7 14:38:55 2013
@@ -98,13 +98,14 @@ public class RoleSearchResultPanel exten
@Override
public Page createPage() {
- return new StatusModalPage(page.getPageReference(), statusmodal, model.getObject());
+ return new StatusModalPage<RoleTO>(
+ page.getPageReference(), statusmodal, (RoleTO) model.getObject());
}
});
statusmodal.show(target);
}
- }, ActionLink.ActionType.SEARCH, PAGEID);
+ }, ActionLink.ActionType.MANAGE_RESOURCES, PAGEID);
panel.add(new ActionLink() {
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/StatusPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/StatusPanel.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/StatusPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/StatusPanel.java Mon Oct 7 14:38:55 2013
@@ -20,6 +20,7 @@ package org.apache.syncope.console.pages
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -29,9 +30,9 @@ import org.apache.syncope.common.to.Conn
import org.apache.syncope.common.to.PropagationRequestTO;
import org.apache.syncope.common.to.RoleTO;
import org.apache.syncope.common.to.UserTO;
-import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.commons.StatusBean;
import org.apache.syncope.console.commons.StatusUtils;
+import org.apache.syncope.console.commons.StatusUtils.ConnObjectWrapper;
import org.apache.syncope.console.commons.StatusUtils.Status;
import org.apache.syncope.console.markup.html.list.AltListView;
import org.apache.syncope.console.pages.ConnObjectModalPage;
@@ -39,21 +40,16 @@ import org.apache.syncope.console.rest.R
import org.apache.syncope.console.rest.UserRestClient;
import org.apache.syncope.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.console.wicket.markup.html.form.ActionLinksPanel;
-import org.apache.wicket.Component;
import org.apache.wicket.Page;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.ComponentTag;
-import org.apache.wicket.markup.head.CssContentHeaderItem;
-import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.html.IHeaderContributor;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Check;
import org.apache.wicket.markup.html.form.CheckGroup;
import org.apache.wicket.markup.html.form.CheckGroupSelector;
-import org.apache.wicket.markup.html.image.Image;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Panel;
@@ -86,9 +82,7 @@ public class StatusPanel extends Panel i
private final ModalWindow connObjectWin;
- private final AbstractAttributableTO attributable;
-
- private final Map<String, ConnObjectTO> connObjects;
+ private final List<ConnObjectWrapper> connObjects;
private final Map<String, StatusBean> initialStatusBeanMap;
@@ -96,11 +90,15 @@ public class StatusPanel extends Panel i
private final ListView<StatusBean> statusBeansListView;
- public <T extends AbstractAttributableTO> StatusPanel(final String id, final AbstractAttributableTO attributable,
- final List<StatusBean> selectedResources, final PageReference pageref) {
+ private final StatusUtils statusUtils;
+
+ public <T extends AbstractAttributableTO> StatusPanel(
+ final String id,
+ final AbstractAttributableTO attributable,
+ final List<StatusBean> selectedResources,
+ final PageReference pageref) {
super(id);
- this.attributable = attributable;
connObjectWin = new ModalWindow("connObjectWin");
connObjectWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
@@ -109,45 +107,57 @@ public class StatusPanel extends Panel i
connObjectWin.setCookieName("connobject-modal");
add(connObjectWin);
- final StatusBean syncope = new StatusBean();
- syncope.setResourceName("Syncope");
+ statusUtils = new StatusUtils(attributable instanceof RoleTO ? roleRestClient : userRestClient);
+
+ connObjects = statusUtils.getConnectorObjects(Collections.<AbstractAttributableTO>singleton(attributable));
+
+ final List<StatusBean> statusBeans = new ArrayList<StatusBean>(connObjects.size() + 1);
+ initialStatusBeanMap = new LinkedHashMap<String, StatusBean>(connObjects.size() + 1);
+
+ final StatusBean syncope = new StatusBean(attributable, "syncope");
+
if (attributable instanceof UserTO) {
- UserTO userTO = (UserTO) attributable;
- syncope.setAccountLink(userTO.getUsername());
+ syncope.setAccountLink(((UserTO) attributable).getUsername());
Status syncopeStatus = Status.UNDEFINED;
- if (userTO.getStatus() != null) {
+ if (((UserTO) attributable).getStatus() != null) {
try {
- syncopeStatus = Status.valueOf(userTO.getStatus().toUpperCase());
+ syncopeStatus = Status.valueOf(((UserTO) attributable).getStatus().toUpperCase());
} catch (IllegalArgumentException e) {
- LOG.warn("Unexpected status found: {}", userTO.getStatus());
+ LOG.warn("Unexpected status found: {}", ((UserTO) attributable).getStatus(), e);
}
}
syncope.setStatus(syncopeStatus);
- }
- if (attributable instanceof RoleTO) {
- RoleTO roleTO = (RoleTO) attributable;
- syncope.setAccountLink(roleTO.getDisplayName());
+ } else if (attributable instanceof RoleTO) {
+ syncope.setAccountLink(((RoleTO) attributable).getDisplayName());
syncope.setStatus(Status.ACTIVE);
}
- StatusUtils statusUtils = new StatusUtils((attributable instanceof UserTO ? userRestClient : roleRestClient));
-
- connObjects = statusUtils.getConnectorObjects(attributable);
-
- List<StatusBean> statusBeans = new ArrayList<StatusBean>(connObjects.size() + 1);
statusBeans.add(syncope);
- initialStatusBeanMap = new LinkedHashMap<String, StatusBean>(connObjects.size() + 1);
initialStatusBeanMap.put(syncope.getResourceName(), syncope);
- for (Map.Entry<String, ConnObjectTO> entry : connObjects.entrySet()) {
- final StatusBean statusBean = statusUtils.getStatusBean(entry.getKey(), entry.getValue());
- initialStatusBeanMap.put(entry.getKey(), statusBean);
+ for (ConnObjectWrapper entry : connObjects) {
+ final StatusBean statusBean = statusUtils.getStatusBean(
+ entry.getAttributable(),
+ entry.getResourceName(),
+ entry.getConnObjectTO(),
+ attributable instanceof RoleTO);
+
+ initialStatusBeanMap.put(entry.getResourceName(), statusBean);
statusBeans.add(statusBean);
}
checkGroup = new CheckGroup<StatusBean>("group", selectedResources);
checkGroup.setOutputMarkupId(true);
+ checkGroup.add(new AjaxFormChoiceComponentUpdatingBehavior() {
+
+ private static final long serialVersionUID = -151291731388673682L;
+
+ @Override
+ protected void onUpdate(AjaxRequestTarget target) {
+ // ignore
+ }
+ });
add(checkGroup);
add(new CheckGroupSelector("groupselector", checkGroup));
@@ -158,59 +168,9 @@ public class StatusPanel extends Panel i
@Override
protected void populateItem(final ListItem<StatusBean> item) {
- final Image image;
- final String alt, title;
- boolean checkVisibility = true;
-
- switch (item.getModelObject().getStatus()) {
-
- case NOT_YET_SUBMITTED:
- image = newImage(StatusUtils.Status.UNDEFINED.toString());
- alt = "undefined icon";
- title = "Not yet submitted";
- break;
-
- case ACTIVE:
- image = newImage(StatusUtils.Status.ACTIVE.toString());
- alt = "active icon";
- title = "Enabled";
- break;
-
- case UNDEFINED:
- image = newImage(StatusUtils.Status.UNDEFINED.toString());
- checkVisibility = false;
- alt = "undefined icon";
- title = "Undefined status";
- break;
-
- case OBJECT_NOT_FOUND:
- image = newImage(StatusUtils.Status.OBJECT_NOT_FOUND.toString());
- checkVisibility = false;
- alt = "notfound icon";
- title = "User not found";
- break;
-
- default:
- image = newImage(StatusUtils.Status.SUSPENDED.toString());
- alt = "inactive icon";
- title = "Disabled";
- }
-
- image.add(new Behavior() {
-
- private static final long serialVersionUID = 1469628524240283489L;
-
- @Override
- public void onComponentTag(final Component component, final ComponentTag tag) {
- tag.put("alt", alt);
- tag.put("title", title);
- }
- });
- item.add(image);
+ item.add(statusUtils.getStatusImage("icon", item.getModelObject().getStatus()));
final Check<StatusBean> check = new Check<StatusBean>("check", item.getModel(), checkGroup);
- check.setEnabled(checkVisibility);
- check.setVisible(checkVisibility);
item.add(check);
item.add(new Label("resource", new ResourceModel(item.getModelObject().getResourceName(), item
@@ -223,13 +183,14 @@ public class StatusPanel extends Panel i
item.add(new Label("accountLink", ""));
}
- if (pageref != null
- && connObjects.containsKey(item.getModelObject().getResourceName())
- && connObjects.get(item.getModelObject().getResourceName()) != null) {
+ final ConnObjectTO connObjectTO = statusUtils.getConnObjectTO(
+ item.getModelObject().getAttributableId(),
+ item.getModelObject().getResourceName(),
+ connObjects);
- final ConnObjectTO connObjectTO = connObjects.get(item.getModelObject().getResourceName());
+ if (pageref != null && connObjectTO != null) {
- ActionLinksPanel connObject = new ActionLinksPanel("connObject", new Model(), pageref);
+ final ActionLinksPanel connObject = new ActionLinksPanel("connObject", new Model(), pageref);
connObject.add(new ActionLink() {
@@ -261,10 +222,6 @@ public class StatusPanel extends Panel i
checkGroup.add(statusBeansListView);
}
- private Image newImage(final String imageStatus) {
- return new Image("icon", IMG_STATUES + imageStatus + Constants.PNG_EXT);
- }
-
public PropagationRequestTO getPropagationRequestTO() {
PropagationRequestTO result = null;
@@ -298,17 +255,4 @@ public class StatusPanel extends Panel i
}
}
}
-
- @Override
- public void renderHead(final IHeaderResponse response) {
- if (this.attributable instanceof RoleTO) {
- response.render(new CssContentHeaderItem(
- "div#check{"
- + "display:none;"
- + "}"
- + "div#status{"
- + "display:none;"
- + "}", null, null));
- }
- }
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchResultPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchResultPanel.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchResultPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchResultPanel.java Mon Oct 7 14:38:55 2013
@@ -153,7 +153,29 @@ public class UserSearchResultPanel exten
@Override
public Page createPage() {
- return new StatusModalPage(page.getPageReference(), statusmodal, model.getObject());
+ return new StatusModalPage<UserTO>(
+ page.getPageReference(), statusmodal, (UserTO) model.getObject());
+ }
+ });
+
+ statusmodal.show(target);
+ }
+ }, ActionLink.ActionType.MANAGE_RESOURCES, PAGEID);
+
+ panel.add(new ActionLink() {
+
+ private static final long serialVersionUID = -7978723352517770644L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target) {
+ statusmodal.setPageCreator(new ModalWindow.PageCreator() {
+
+ private static final long serialVersionUID = -7834632442532690940L;
+
+ @Override
+ public Page createPage() {
+ return new StatusModalPage<UserTO>(
+ page.getPageReference(), statusmodal, (UserTO) model.getObject(), true);
}
});
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ResourceRestClient.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ResourceRestClient.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ResourceRestClient.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ResourceRestClient.java Mon Oct 7 14:38:55 2013
@@ -21,10 +21,13 @@ package org.apache.syncope.console.rest;
import java.util.List;
import java.util.Set;
import org.apache.syncope.common.services.ResourceService;
+import org.apache.syncope.common.to.AbstractAttributableTO;
import org.apache.syncope.common.to.BulkAction;
import org.apache.syncope.common.to.BulkActionRes;
+import org.apache.syncope.common.to.BulkAssociationAction;
import org.apache.syncope.common.to.PropagationActionClassTO;
import org.apache.syncope.common.to.ResourceTO;
+import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.common.util.CollectionWrapper;
import org.apache.syncope.common.validation.SyncopeClientCompositeException;
import org.springframework.stereotype.Component;
@@ -87,4 +90,13 @@ public class ResourceRestClient extends
public BulkActionRes bulkAction(final BulkAction action) {
return getService(ResourceService.class).bulkAction(action);
}
+
+ public BulkActionRes bulkAssociationAction(
+ String resourceName, BulkAssociationAction bulkAction, Class<? extends AbstractAttributableTO> typeRef) {
+ if (UserTO.class.isAssignableFrom(typeRef)) {
+ return getService(ResourceService.class).usersBulkAssociationAction(resourceName, bulkAction);
+ } else {
+ return getService(ResourceService.class).rolesBulkAssociationAction(resourceName, bulkAction);
+ }
+ }
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/RoleRestClient.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/RoleRestClient.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/RoleRestClient.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/RoleRestClient.java Mon Oct 7 14:38:55 2013
@@ -32,6 +32,8 @@ import org.apache.syncope.common.to.Bulk
import org.apache.syncope.common.to.ConnObjectTO;
import org.apache.syncope.common.to.RoleTO;
import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.console.commons.StatusBean;
+import org.apache.syncope.console.commons.StatusUtils;
import org.springframework.stereotype.Component;
/**
@@ -95,4 +97,16 @@ public class RoleRestClient extends Abst
public BulkActionRes bulkAction(final BulkAction action) {
return getService(RoleRestClient.class).bulkAction(action);
}
+
+ public RoleTO unlink(final long roleId, final List<StatusBean> statuses) {
+ return getService(RoleService.class).unlink(roleId, StatusUtils.buildPropagationTargetsTO(statuses));
+ }
+
+ public RoleTO unassign(final long roleId, final List<StatusBean> statuses) {
+ return getService(RoleService.class).unassign(roleId, StatusUtils.buildPropagationTargetsTO(statuses));
+ }
+
+ public RoleTO deprovision(final long roleId, final List<StatusBean> statuses) {
+ return getService(RoleService.class).deprovision(roleId, StatusUtils.buildPropagationTargetsTO(statuses));
+ }
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/UserRestClient.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/UserRestClient.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/UserRestClient.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/UserRestClient.java Mon Oct 7 14:38:55 2013
@@ -127,4 +127,16 @@ public class UserRestClient extends Abst
public BulkActionRes bulkAction(final BulkAction action) {
return getService(UserService.class).bulkAction(action);
}
+
+ public UserTO unlink(final long userId, final List<StatusBean> statuses) {
+ return getService(UserService.class).unlink(userId, StatusUtils.buildPropagationTargetsTO(statuses));
+ }
+
+ public UserTO unassign(final long userId, final List<StatusBean> statuses) {
+ return getService(UserService.class).unassign(userId, StatusUtils.buildPropagationTargetsTO(statuses));
+ }
+
+ public UserTO deprovision(final long userId, final List<StatusBean> statuses) {
+ return getService(UserService.class).deprovision(userId, StatusUtils.buildPropagationTargetsTO(statuses));
+ }
}
Copied: syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/ajax/markup/html/IndicatingOnConfirmAjaxLink.java (from r1525003, syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/ajax/markup/html/IndicatingDeleteOnConfirmAjaxLink.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/ajax/markup/html/IndicatingOnConfirmAjaxLink.java?p2=syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/ajax/markup/html/IndicatingOnConfirmAjaxLink.java&p1=syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/ajax/markup/html/IndicatingDeleteOnConfirmAjaxLink.java&r1=1525003&r2=1529856&rev=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/ajax/markup/html/IndicatingDeleteOnConfirmAjaxLink.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/ajax/markup/html/IndicatingOnConfirmAjaxLink.java Mon Oct 7 14:38:55 2013
@@ -22,18 +22,20 @@ import org.apache.wicket.Component;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.attributes.AjaxCallListener;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
-import org.apache.wicket.model.IModel;
-public abstract class IndicatingDeleteOnConfirmAjaxLink<T> extends ClearIndicatingAjaxLink<T> {
+public abstract class IndicatingOnConfirmAjaxLink<T> extends ClearIndicatingAjaxLink<T> {
private static final long serialVersionUID = 2228670850922265663L;
- public IndicatingDeleteOnConfirmAjaxLink(final String id, final PageReference pageRef) {
- super(id, pageRef);
+ private final String msg;
+
+ public IndicatingOnConfirmAjaxLink(final String id, final PageReference pageRef) {
+ this(id, pageRef, "confirmDelete");
}
- public IndicatingDeleteOnConfirmAjaxLink(final String id, final IModel<T> model, final PageReference pageRef) {
- super(id, model, pageRef);
+ public IndicatingOnConfirmAjaxLink(final String id, final PageReference pageRef, final String msg) {
+ super(id, pageRef);
+ this.msg = msg;
}
@Override
@@ -46,7 +48,9 @@ public abstract class IndicatingDeleteOn
@Override
public CharSequence getPrecondition(final Component component) {
- return "if (!confirm('" + getString("confirmDelete") + "')) {return false;} else {return true;}";
+ return "if (!confirm('"
+ + getString(IndicatingOnConfirmAjaxLink.this.msg)
+ + "')) {return false;} else {return true;}";
}
};
attributes.getAjaxCallListeners().add(ajaxCallListener);
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/extensions/markup/html/repeater/data/table/CheckBoxPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/extensions/markup/html/repeater/data/table/CheckBoxPanel.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/extensions/markup/html/repeater/data/table/CheckBoxPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/extensions/markup/html/repeater/data/table/CheckBoxPanel.java Mon Oct 7 14:38:55 2013
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.console.wicket.extensions.markup.html.repeater.data.table;
+import org.apache.syncope.console.commons.ActionTableCheckGroup;
import org.apache.wicket.markup.html.form.Check;
import org.apache.wicket.markup.html.form.CheckGroup;
import org.apache.wicket.markup.html.panel.Panel;
@@ -32,6 +33,11 @@ public class CheckBoxPanel<T> extends Pa
public CheckBoxPanel(final String componentId, final IModel<T> model, final CheckGroup<T> checkGroup) {
super(componentId, model);
this.check = new Check<T>("check", model, checkGroup);
+ if (checkGroup instanceof ActionTableCheckGroup) {
+ boolean checkable = ((ActionTableCheckGroup<T>) checkGroup).isCheckable(model.getObject());
+ this.check.setEnabled(checkable);
+ this.check.setVisible(checkable);
+ }
add(this.check);
}
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/ActionLink.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/ActionLink.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/ActionLink.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/ActionLink.java Mon Oct 7 14:38:55 2013
@@ -42,7 +42,13 @@ public abstract class ActionLink impleme
SUSPEND("update"),
REACTIVATE("update"),
RELOAD("reload"),
- CHANGE_VIEW("changeView");
+ CHANGE_VIEW("changeView"),
+ UNLINK("update"),
+ UNASSIGN("update"),
+ DEPROVISION("update"),
+ MANAGE_RESOURCES("update"),
+ MANAGE_USERS("update"),
+ MANAGE_ROLES("update");
private final String actionId;
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/ActionLinksPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/ActionLinksPanel.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/ActionLinksPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/ActionLinksPanel.java Mon Oct 7 14:38:55 2013
@@ -20,7 +20,7 @@ package org.apache.syncope.console.wicke
import org.apache.syncope.console.commons.XMLRolesReader;
import org.apache.syncope.console.wicket.ajax.markup.html.ClearIndicatingAjaxLink;
-import org.apache.syncope.console.wicket.ajax.markup.html.IndicatingDeleteOnConfirmAjaxLink;
+import org.apache.syncope.console.wicket.ajax.markup.html.IndicatingOnConfirmAjaxLink;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
@@ -49,6 +49,9 @@ public class ActionLinksPanel extends Pa
this.pageRef = pageRef;
super.add(new Fragment("panelClaim", "emptyFragment", this));
+ super.add(new Fragment("panelManageResources", "emptyFragment", this));
+ super.add(new Fragment("panelManageUsers", "emptyFragment", this));
+ super.add(new Fragment("panelManageRoles", "emptyFragment", this));
super.add(new Fragment("panelCreate", "emptyFragment", this));
super.add(new Fragment("panelEdit", "emptyFragment", this));
super.add(new Fragment("panelUserTemplate", "emptyFragment", this));
@@ -64,6 +67,9 @@ public class ActionLinksPanel extends Pa
super.add(new Fragment("panelReactivate", "emptyFragment", this));
super.add(new Fragment("panelReload", "emptyFragment", this));
super.add(new Fragment("panelChangeView", "emptyFragment", this));
+ super.add(new Fragment("panelUnlink", "emptyFragment", this));
+ super.add(new Fragment("panelUnassign", "emptyFragment", this));
+ super.add(new Fragment("panelDeprovision", "emptyFragment", this));
}
public void add(
@@ -110,6 +116,48 @@ public class ActionLinksPanel extends Pa
});
break;
+ case MANAGE_RESOURCES:
+ fragment = new Fragment("panelManageResources", "fragmentManageResources", this);
+
+ fragment.addOrReplace(new ClearIndicatingAjaxLink("manageResourcesLink", pageRef) {
+
+ private static final long serialVersionUID = -6957616042924610291L;
+
+ @Override
+ protected void onClickInternal(final AjaxRequestTarget target) {
+ link.onClick(target);
+ }
+ });
+ break;
+
+ case MANAGE_USERS:
+ fragment = new Fragment("panelManageUsers", "fragmentManageUsers", this);
+
+ fragment.addOrReplace(new ClearIndicatingAjaxLink("manageUsersLink", pageRef) {
+
+ private static final long serialVersionUID = -6957616042924610292L;
+
+ @Override
+ protected void onClickInternal(final AjaxRequestTarget target) {
+ link.onClick(target);
+ }
+ });
+ break;
+
+ case MANAGE_ROLES:
+ fragment = new Fragment("panelManageRoles", "fragmentManageRoles", this);
+
+ fragment.addOrReplace(new ClearIndicatingAjaxLink("manageRolesLink", pageRef) {
+
+ private static final long serialVersionUID = -6957616042924610293L;
+
+ @Override
+ protected void onClickInternal(final AjaxRequestTarget target) {
+ link.onClick(target);
+ }
+ });
+ break;
+
case CREATE:
fragment = new Fragment("panelCreate", "fragmentCreate", this);
@@ -225,7 +273,7 @@ public class ActionLinksPanel extends Pa
case DELETE:
fragment = new Fragment("panelDelete", "fragmentDelete", this);
- fragment.addOrReplace(new IndicatingDeleteOnConfirmAjaxLink("deleteLink", pageRef) {
+ fragment.addOrReplace(new IndicatingOnConfirmAjaxLink("deleteLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@@ -321,6 +369,51 @@ public class ActionLinksPanel extends Pa
}
});
break;
+
+ case UNLINK:
+ fragment = new Fragment("panelUnlink", "fragmentUnlink", this);
+
+ fragment.addOrReplace(
+ new IndicatingOnConfirmAjaxLink<Void>("unlinkLink", pageRef, "confirmUnlink") {
+
+ private static final long serialVersionUID = -6957616042924610293L;
+
+ @Override
+ protected void onClickInternal(final AjaxRequestTarget target) {
+ link.onClick(target);
+ }
+ });
+ break;
+
+ case UNASSIGN:
+ fragment = new Fragment("panelUnassign", "fragmentUnassign", this);
+
+ fragment.addOrReplace(
+ new IndicatingOnConfirmAjaxLink<Void>("unassignLink", pageRef, "confirmUnassign") {
+
+ private static final long serialVersionUID = -6957616042924610294L;
+
+ @Override
+ protected void onClickInternal(final AjaxRequestTarget target) {
+ link.onClick(target);
+ }
+ });
+ break;
+
+ case DEPROVISION:
+ fragment = new Fragment("panelDeprovision", "fragmentDeprovision", this);
+
+ fragment.addOrReplace(
+ new IndicatingOnConfirmAjaxLink<Void>("deprovisionLink", pageRef, "confirmDeprovision") {
+
+ private static final long serialVersionUID = -6957616042924610295L;
+
+ @Override
+ protected void onClickInternal(final AjaxRequestTarget target) {
+ link.onClick(target);
+ }
+ });
+ break;
default:
// do nothink
}
@@ -338,6 +431,18 @@ public class ActionLinksPanel extends Pa
super.addOrReplace(new Fragment("panelClaim", "emptyFragment", this));
break;
+ case MANAGE_RESOURCES:
+ super.addOrReplace(new Fragment("panelManageResources", "emptyFragment", this));
+ break;
+
+ case MANAGE_USERS:
+ super.addOrReplace(new Fragment("panelManageUsers", "emptyFragment", this));
+ break;
+
+ case MANAGE_ROLES:
+ super.addOrReplace(new Fragment("panelManageRoles", "emptyFragment", this));
+ break;
+
case CREATE:
super.addOrReplace(new Fragment("panelCreate", "emptyFragment", this));
break;
@@ -389,6 +494,18 @@ public class ActionLinksPanel extends Pa
case CHANGE_VIEW:
super.addOrReplace(new Fragment("panelChangeView", "emptyFragment", this));
break;
+
+ case UNLINK:
+ super.addOrReplace(new Fragment("panelUnlink", "emptyFragment", this));
+ break;
+
+ case UNASSIGN:
+ super.addOrReplace(new Fragment("panelUnassign", "emptyFragment", this));
+ break;
+
+ case DEPROVISION:
+ super.addOrReplace(new Fragment("panelDeprovision", "emptyFragment", this));
+ break;
default:
// do nothing
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/tree/TreeActionLinkPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/tree/TreeActionLinkPanel.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/tree/TreeActionLinkPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/tree/TreeActionLinkPanel.java Mon Oct 7 14:38:55 2013
@@ -27,7 +27,7 @@ import org.apache.syncope.console.pages.
import org.apache.syncope.console.pages.Roles;
import org.apache.syncope.console.rest.RoleRestClient;
import org.apache.syncope.console.wicket.ajax.markup.html.ClearIndicatingAjaxLink;
-import org.apache.syncope.console.wicket.ajax.markup.html.IndicatingDeleteOnConfirmAjaxLink;
+import org.apache.syncope.console.wicket.ajax.markup.html.IndicatingOnConfirmAjaxLink;
import org.apache.wicket.Page;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -122,7 +122,7 @@ public class TreeActionLinkPanel extends
updateRoleLink.setOutputMarkupId(true);
fragment.add(updateRoleLink);
- final AjaxLink dropRoleLink = new IndicatingDeleteOnConfirmAjaxLink("dropRoleLink", pageRef) {
+ final AjaxLink dropRoleLink = new IndicatingOnConfirmAjaxLink("dropRoleLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
Modified: syncope/trunk/console/src/main/resources/authorizations.xml
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/authorizations.xml?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/authorizations.xml (original)
+++ syncope/trunk/console/src/main/resources/authorizations.xml Mon Oct 7 14:38:55 2013
@@ -57,7 +57,7 @@ under the License.
<action id="delete">
<entitlement>USER_DELETE</entitlement>
</action>
-
+
<action id="changeView">
<entitlement>USER_VIEW</entitlement>
</action>
Modified: syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication.properties
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication.properties?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication.properties (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication.properties Mon Oct 7 14:38:55 2013
@@ -27,6 +27,10 @@ operation_succeeded=Operation executed s
operation_error=Error occurred during the requested operation
alert=Alert:
confirmDelete=Do you really want to delete the selected item?
+confirmUnlink=Do you really want to remove the link between user(s) and resource?
+confirmUnassign=Do you really want to remove the assignment between user(s) and resource?
+confirmDeprovision=Do you really want to de-provision user(s)?
+
unauthorizedInstantiationException=Missing authorization.
httpClientException=Missing authorization while contacting Syncope core.
Modified: syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication_it.properties
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication_it.properties?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication_it.properties (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication_it.properties Mon Oct 7 14:38:55 2013
@@ -27,6 +27,9 @@ operation_succeeded=Operazione eseguita
operation_error=Attenzione si \u00e8 verificato un errore durante l'esecuzione dell'operazione richiesta
alert=Attenzione:
confirmDelete=Vuoi davvero procedere con la cancellazione?
+confirmUnlink=Vuoi davvero procedere rimuovendo il link tra utente/i e risorsa?
+confirmUnassign=Vuoi davvero procedere rimuovendo l'assegnamento tra utente/i e risorsa?
+confirmDeprovision=Vuoi davvero procedere con il de-provisioning dell'utente?
unauthorizedInstantiationException=Autorizzazione mancante.
httpClientException=Autorizzazione mancante durante la comunicazione con Syncope core.
Modified: syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication_pt_BR.properties
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication_pt_BR.properties?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication_pt_BR.properties (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/SyncopeApplication_pt_BR.properties Mon Oct 7 14:38:55 2013
@@ -14,35 +14,38 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-users=Usu\u00E1rios
-roles=Fun\u00E7\u00F5es
-configuration=Configura\u00E7\u00F5es
+users=Usu\u00e1rios
+roles=Fun\u00e7\u00f5es
+configuration=Configura\u00e7\u00f5es
resources=Recursos
connectors=Conectores
-reports=Relat\u00F3rios
+reports=Relat\u00f3rios
tasks=Tarefas
logout=Sair
schema=Esquemas
-operation_succeded=Opera\u00E7\u00E3o executada com sucesso
-operation_error=Um erro ocorreu ao executar esta opera\u00E7\u00E3o
+operation_succeded=Opera\u00e7\u00e3o executada com sucesso
+operation_error=Um erro ocorreu ao executar esta opera\u00e7\u00e3o
alert=Alerta:
-confirmDelete=Voc\u00EA realmente deseja apagar este item selecionado?
+confirmDelete=Voc\u00ea realmente deseja apagar este item selecionado?
+confirmUnlink=Voc\u00ea realmente deseja apagar o v\u00ednculo entre o usu\u00e1rio e de recursos?
+confirmUnassign=Voc\u00ea realmente deseja apagar a atribui\u00e7\u00e3o entre o usu\u00e1rio e de recursos?
+confirmDeprovision=Voc\u00ea realmente de-provision usu\u00e1rio?
-unauthorizedInstantiationException=Falta de autoriza\u00E7\u00E3o para concluir.
-httpClientException=Falta de autoriza\u00E7\u00E3o ao comunicar-se com o Syncope core.
+unauthorizedInstantiationException=Falta de autoriza\u00e7\u00e3o para concluir.
+httpClientException=Falta de autoriza\u00e7\u00e3o ao comunicar-se com o Syncope core.
restClientException=Erro ao comunicar-se com o Syncope core.
-pageExpiredException=Sess\u00E3o encerrada, favor logar-se novamente.
+pageExpiredException=Sess\u00e3o encerrada, favor logar-se novamente.
dropDownChoiceField.nullValid=Escolha um
todo=A fazer
DateTimeField$HoursValidator=O seu valor precisa estar entre (1, 12)
error=Erro
-generic_error=Um erro ocorreu durante a opera\u00E7\u00E3o
+generic_error=Um erro ocorreu durante a opera\u00e7\u00e3o
id=Id
name=Nome
-palette.available=Dispon\u00ED\u00ADvel
+palette.available=Dispon\u00ed\u00advel
palette.selected=Selecionado
-jexl_info=Este campo \u00E9 designado a uma express\u00E3o do tipo JEXL, por exemplo\:
+jexl_info=Este campo \u00e9 designado a uma express\u00e3o do tipo JEXL, por exemplo\:
jexl_ex1=sobrenome + ',' + nome
jexl_ex2='novo.' + sobrenome
-jexl_syntax_url=Refer\u00EAncia JEXL completa
+jexl_syntax_url=Refer\u00eancia JEXL completa
Copied: syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/AbstractStatusModlaPage.html (from r1525003, syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/StatusModalPage.html)
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/AbstractStatusModlaPage.html?p2=syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/AbstractStatusModlaPage.html&p1=syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/StatusModalPage.html&r1=1525003&r2=1529856&rev=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/StatusModalPage.html (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/AbstractStatusModlaPage.html Mon Oct 7 14:38:55 2013
@@ -17,30 +17,23 @@ specific language governing permissions
under the License.
-->
<wicket:head>
+ <link rel="stylesheet" type="text/css" href="css/bulk.css" media="all"/>
<style>
- .submit{
+ #dataTableSpan{
display: block;
clear: both;
float: none;
- margin-left: 10px;
+ margin: 10px;
padding-top: 10px;
}
+
+ #dataTableSpan table{
+ width: 100%;
+ }
</style>
</wicket:head>
<wicket:extend>
- <form wicket:id="form">
- <p class="ui-widget ui-corner-all ui-widget-header">
- <wicket:message key="title"/>
- </p>
-
- <div style="display: block; margin: 10px">
- <span wicket:id="statuspanel">[Status Panel]</span>
- </div>
-
- <div class="submit">
- <input type="submit" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" wicket:id="enable"/>
- <input type="submit" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" wicket:id="disable"/>
- <input type="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" wicket:id="cancel"/>
- </div>
- </form>
+ <p class="ui-widget ui-corner-all ui-widget-header"><wicket:message key="title"/></p>
+ <span wicket:id="resourceDatatable" id="dataTableSpan">[resources]</span>
+ <wicket:child />
</wicket:extend>
Modified: syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/Resources.html
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/Resources.html?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/Resources.html (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/Resources.html Mon Oct 7 14:38:55 2013
@@ -40,6 +40,7 @@ under the License.
</span>
</div>
+ <div wicket:id="statusModal">[Show modal window for provisioning status]</div>
<div wicket:id="createResourceWin">[Show modal window for creating resource]</div>
<div wicket:id="editResourceWin">[Show modal window for editing resource]</div>
Copied: syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/ActionDataTablePanel.html (from r1525003, syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/AjaxDataTablePanel.html)
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/ActionDataTablePanel.html?p2=syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/ActionDataTablePanel.html&p1=syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/AjaxDataTablePanel.html&r1=1525003&r2=1529856&rev=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/AjaxDataTablePanel.html (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/ActionDataTablePanel.html Mon Oct 7 14:38:55 2013
@@ -21,27 +21,25 @@ under the License.
<link rel="stylesheet" type="text/css" href="css/bulk.css" media="all"/>
</wicket:head>
<wicket:panel>
- <span wicket:id="tablePanel">[Table panel]</span>
- <div wicket:id="bulkModal" />
- <wicket:fragment wicket:id="bulkAvailable">
- <form wicket:id="groupForm">
- <span wicket:id="checkgroup">
- <table class="ui-widget ui-widget-content table-hover" wicket:id="dataTable">[DataTable]</table>
- </span>
- </form>
- <div class="bulkAction">
- <div class="bulkActionCell" style="width: 40px">
- <a href="#" wicket:id="bulkActionLink">
- <img src="img/actions/bulk.png" alt="bulk action icon" title="Bulk action"/>
- </a>
+ <form wicket:id="groupForm">
+ <span wicket:id="checkgroup">
+ <table class="ui-widget ui-widget-content table-hover" wicket:id="dataTable">[Data Table]</table>
+ </span>
+
+ <div id="actionRow" class="pageRowElement">
+ <div id="actions">
+ <div id="actionPanel" wicket:id="actionPanelContainer" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only">
+ <span wicket:id="actions">[Actions]</span>
+ </div>
+
+ <div id="cancelBtmForm">
+ <input type="button" wicket:id="cancel" id="cancel"
+ class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"/>
+ </div>
</div>
</div>
- </wicket:fragment>
-
- <wicket:fragment wicket:id="bulkNotAvailable">
- <table class="ui-widget ui-widget-content table-hover" wicket:id="dataTable">[DataTable]</table>
- </wicket:fragment>
+ </form>
</wicket:panel>
</html>
Copied: syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/ImagePanel.html (from r1525003, syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/AbstractSearchPanel.html)
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/ImagePanel.html?p2=syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/ImagePanel.html&p1=syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/AbstractSearchPanel.html&r1=1525003&r2=1529856&rev=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/AbstractSearchPanel.html (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/ImagePanel.html Mon Oct 7 14:38:55 2013
@@ -18,61 +18,6 @@ under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <div id="searchBox">
- <div wicket:id="searchFeedback"></div>
- <table border="0">
- <thead>
- <tr>
- <th></th>
- <th><wicket:message key="search_not_value"/></th>
- <th><wicket:message key="search_filter_type"/></th>
- <th><wicket:message key="search_filter_name"/></th>
- <th><wicket:message key="search_type_cond"/></th>
- <th><wicket:message key="search_filter_value"/></th>
- <th></th>
- <th></th>
- <th></th>
- </tr>
- </thead>
- <tbody wicket:id="searchFormContainer">
- <tr wicket:id="searchView">
- <td>
- <b><span wicket:id="operationType"/></b>
- </td>
- <td>
- <input type="checkbox" wicket:id="notOperator"/>
- </td>
- <td>
- <select class="text ui-widget-content ui-corner-all"
- wicket:id="filterType"/>
- </td>
- <td>
- <select class="text ui-widget-content ui-corner-all"
- wicket:id="filterName"/>
- </td>
- <td>
- <select class="text ui-widget-content ui-corner-all"
- wicket:id="type"/>
- </td>
- <td>
- <input type="text" class="text ui-widget-content ui-corner-all"
- wicket:id="filterValue"/>
- </td>
- <td>
- <input type="button" class="text ui-widget-content ui-corner-all"
- wicket:id="addAndButton"/>
- </td>
- <td>
- <input type="submit" class="text ui-widget-content ui-corner-all"
- wicket:id="addOrButton"/>
- </td>
- <td>
- <input type="button" class="text ui-widget-content ui-corner-all"
- wicket:id="dropButton"/>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
+ <img wicket:id="img" />
</wicket:panel>
</html>
Modified: syncope/trunk/console/src/main/resources/org/apache/syncope/console/wicket/markup/html/form/ActionLinksPanel.html
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/wicket/markup/html/form/ActionLinksPanel.html?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/wicket/markup/html/form/ActionLinksPanel.html (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/wicket/markup/html/form/ActionLinksPanel.html Mon Oct 7 14:38:55 2013
@@ -27,6 +27,9 @@ under the License.
</wicket:head>
<wicket:panel>
<span wicket:id="panelClaim">[plus]</span>
+ <span wicket:id="panelManageResources">[plus]</span>
+ <span wicket:id="panelManageUsers">[plus]</span>
+ <span wicket:id="panelManageRoles">[plus]</span>
<span wicket:id="panelDryRun">[plus]</span>
<span wicket:id="panelExecute">[plus]</span>
<span wicket:id="panelEnable">[plus]</span>
@@ -42,11 +45,26 @@ under the License.
<span wicket:id="panelReactivate">[plus]</span>
<span wicket:id="panelReload">[plus]</span>
<span wicket:id="panelChangeView">[plus]</span>
+ <span wicket:id="panelUnlink">[plus]</span>
+ <span wicket:id="panelUnassign">[plus]</span>
+ <span wicket:id="panelDeprovision">[plus]</span>
<wicket:fragment wicket:id="fragmentClaim">
<a href="#" wicket:id="claimLink"><img id="action" src="img/actions/claim.png" alt="claim icon" title="Claim"/></a>
</wicket:fragment>
+ <wicket:fragment wicket:id="fragmentManageResources">
+ <a href="#" wicket:id="manageResourcesLink"><img id="action" src="img/actions/resources-icon.png" alt="manage resources icon" title="Manage resources"/></a>
+ </wicket:fragment>
+
+ <wicket:fragment wicket:id="fragmentManageUsers">
+ <a href="#" wicket:id="manageUsersLink"><img id="action" src="img/actions/users-icon.png" alt="manage users icon" title="Manage users"/></a>
+ </wicket:fragment>
+
+ <wicket:fragment wicket:id="fragmentManageRoles">
+ <a href="#" wicket:id="manageRolesLink"><img id="action" src="img/actions/roles-icon.png" alt="manage roles icon" title="Manage roles"/></a>
+ </wicket:fragment>
+
<wicket:fragment wicket:id="fragmentCreate">
<a href="#" wicket:id="createLink"><img id="action" src="img/actions/create.png" alt="create icon" title="Create"/></a>
</wicket:fragment>
@@ -107,6 +125,18 @@ under the License.
<a href="#" wicket:id="changeViewLink"><img id="action" src="img/actions/settings-icon.png" alt="Change view icon" title="Change view"/></a>
</wicket:fragment>
+ <wicket:fragment wicket:id="fragmentUnlink">
+ <a href="#" wicket:id="unlinkLink"><img id="action" src="img/actions/unlink-icon.png" alt="Unlink icon" title="Unlink"/></a>
+ </wicket:fragment>
+
+ <wicket:fragment wicket:id="fragmentUnassign">
+ <a href="#" wicket:id="unassignLink"><img id="action" src="img/actions/unassign-icon.png" alt="Unassign icon" title="Unassign"/></a>
+ </wicket:fragment>
+
+ <wicket:fragment wicket:id="fragmentDeprovision">
+ <a href="#" wicket:id="deprovisionLink"><img id="action" src="img/actions/deprovision-icon.png" alt="De-provision icon" title="De-provision"/></a>
+ </wicket:fragment>
+
<wicket:fragment wicket:id="emptyFragment">
</wicket:fragment>
</wicket:panel>
Added: syncope/trunk/console/src/main/webapp/img/actions/deprovision-icon.png
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/webapp/img/actions/deprovision-icon.png?rev=1529856&view=auto
==============================================================================
Binary file - no diff available.
Propchange: syncope/trunk/console/src/main/webapp/img/actions/deprovision-icon.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: syncope/trunk/console/src/main/webapp/img/actions/manage-icon.png
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/webapp/img/actions/manage-icon.png?rev=1529856&view=auto
==============================================================================
Binary file - no diff available.
Propchange: syncope/trunk/console/src/main/webapp/img/actions/manage-icon.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: syncope/trunk/console/src/main/webapp/img/actions/resources-icon.png
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/webapp/img/actions/resources-icon.png?rev=1529856&view=auto
==============================================================================
Binary file - no diff available.
Propchange: syncope/trunk/console/src/main/webapp/img/actions/resources-icon.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: syncope/trunk/console/src/main/webapp/img/actions/roles-icon.png
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/webapp/img/actions/roles-icon.png?rev=1529856&view=auto
==============================================================================
Binary file - no diff available.
Propchange: syncope/trunk/console/src/main/webapp/img/actions/roles-icon.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: syncope/trunk/console/src/main/webapp/img/actions/unassign-icon.png
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/webapp/img/actions/unassign-icon.png?rev=1529856&view=auto
==============================================================================
Binary file - no diff available.
Propchange: syncope/trunk/console/src/main/webapp/img/actions/unassign-icon.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: syncope/trunk/console/src/main/webapp/img/actions/unlink-icon.png
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/webapp/img/actions/unlink-icon.png?rev=1529856&view=auto
==============================================================================
Binary file - no diff available.
Propchange: syncope/trunk/console/src/main/webapp/img/actions/unlink-icon.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: syncope/trunk/console/src/main/webapp/img/actions/users-icon.png
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/webapp/img/actions/users-icon.png?rev=1529856&view=auto
==============================================================================
Binary file - no diff available.
Propchange: syncope/trunk/console/src/main/webapp/img/actions/users-icon.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: syncope/trunk/console/src/test/java/org/apache/syncope/console/ConfigurationTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/test/java/org/apache/syncope/console/ConfigurationTestITCase.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/test/java/org/apache/syncope/console/ConfigurationTestITCase.java (original)
+++ syncope/trunk/console/src/test/java/org/apache/syncope/console/ConfigurationTestITCase.java Mon Oct 7 14:38:55 2013
@@ -46,7 +46,7 @@ public class ConfigurationTestITCase ext
selenium.waitForCondition("selenium.isElementPresent(\"//div[@id='tabs']\");", "30000");
- selenium.click("//tr/td[3]/div/span[9]/a");
+ selenium.click("//tr/td[3]/div/span[12]/a");
selenium.waitForCondition("selenium.isElementPresent(\"//input[@name='key:textField']\");", "30000");
@@ -106,7 +106,7 @@ public class ConfigurationTestITCase ext
selenium.waitForCondition("selenium.isElementPresent(\"//div[@id='tabs']\");", "30000");
- selenium.click("//tr[7]/td[3]/div/span[11]/a");
+ selenium.click("//tr[7]/td[3]/div/span[14]/a");
assertTrue(selenium.getConfirmation().matches("^Do you really want to delete the selected item[\\s\\S]$"));
Modified: syncope/trunk/console/src/test/java/org/apache/syncope/console/ConnInstanceTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/test/java/org/apache/syncope/console/ConnInstanceTestITCase.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/test/java/org/apache/syncope/console/ConnInstanceTestITCase.java (original)
+++ syncope/trunk/console/src/test/java/org/apache/syncope/console/ConnInstanceTestITCase.java Mon Oct 7 14:38:55 2013
@@ -55,7 +55,7 @@ public class ConnInstanceTestITCase exte
selenium.waitForCondition("selenium.isElementPresent(\"//div[@id='tabs']\");", "30000");
selenium.click("//div[3]/ul/li[2]/a");
- selenium.click("//tr[4]/td[7]/div/span[9]/a");
+ selenium.click("//tr[4]/td[7]/div/span[12]/a");
selenium.waitForCondition(
"selenium.isElementPresent(\"//div[2]/form/div[2]/div/div/div[3]/div[2]/span/select\");", "30000");
@@ -76,7 +76,7 @@ public class ConnInstanceTestITCase exte
selenium.waitForCondition("selenium.isElementPresent(\"//div[@id='tabs']\");", "30000");
selenium.click("//div[3]/ul/li[2]/a");
- selenium.click("//tr[4]/td[7]/div/span[11]/a");
+ selenium.click("//tr[4]/td[7]/div/span[14]/a");
assertTrue(selenium.getConfirmation().matches("^Do you really want to delete the selected item[\\s\\S]$"));
@@ -90,7 +90,7 @@ public class ConnInstanceTestITCase exte
selenium.waitForCondition("selenium.isElementPresent(\"//div[@id='tabs']\");", "30000");
selenium.click("//div[3]/ul/li[2]/a");
- selenium.click("//tr[2]/td[7]/div/span[9]/a");
+ selenium.click("//tr[2]/td[7]/div/span[12]/a");
selenium.waitForCondition(
"selenium.isElementPresent(\"//select[@name='version:dropDownChoiceField']\");", "30000");
Modified: syncope/trunk/console/src/test/java/org/apache/syncope/console/ReportTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/test/java/org/apache/syncope/console/ReportTestITCase.java?rev=1529856&r1=1529855&r2=1529856&view=diff
==============================================================================
--- syncope/trunk/console/src/test/java/org/apache/syncope/console/ReportTestITCase.java (original)
+++ syncope/trunk/console/src/test/java/org/apache/syncope/console/ReportTestITCase.java Mon Oct 7 14:38:55 2013
@@ -27,7 +27,7 @@ public class ReportTestITCase extends Ab
selenium.click("css=img[alt=\"Reports\"]");
selenium.waitForCondition("selenium.isElementPresent(\"//div[@id='tabs']\");", "30000");
- selenium.click("//table/tbody/tr/td[8]/div/span[9]/a");
+ selenium.click("//table/tbody/tr/td[8]/div/span[12]/a");
selenium.waitForCondition("selenium.isElementPresent("
+ "\"//div[2]/form/div[2]/div/div/span/div/div/div/span\");", "30000");
@@ -54,7 +54,7 @@ public class ReportTestITCase extends Ab
selenium.waitForCondition("selenium.isElementPresent(\"//div[@id='tabs']\");", "30000");
- selenium.click("//table/tbody/tr/td[8]/div/span[3]/a");
+ selenium.click("//table/tbody/tr/td[8]/div/span[6]/a");
selenium.waitForCondition("selenium.isTextPresent(\"Operation executed successfully\");", "30000");
}