You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2013/02/08 18:01:19 UTC
svn commit: r1444147 - in /syncope/trunk: ./
common/src/main/java/org/apache/syncope/common/to/
console/src/main/java/org/apache/syncope/console/pages/
console/src/main/resources/org/apache/syncope/console/pages/
console/src/main/webapp/css/ core/src/m...
Author: ilgrosso
Date: Fri Feb 8 17:01:18 2013
New Revision: 1444147
URL: http://svn.apache.org/r1444147
Log:
[SYNCOPE-311] Merge from 1_0_X
Added:
syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ViewUserModalPage.java
- copied, changed from r1444083, syncope/branches/1_0_X/console/src/main/java/org/apache/syncope/console/pages/ViewUserModalPage.java
Modified:
syncope/trunk/ (props changed)
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/WorkflowFormTO.java
syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java
syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java
syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Todo.java
syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage.html
syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage.properties
syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage_it.properties
syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/Todo.html
syncope/trunk/console/src/main/webapp/css/style.css
syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserDAOImpl.java
syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/task/Update.java
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
Propchange: syncope/trunk/
------------------------------------------------------------------------------
Merged /syncope/branches/1_0_X:r1443946-1444141
Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/WorkflowFormTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/WorkflowFormTO.java?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/WorkflowFormTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/WorkflowFormTO.java Fri Feb 8 17:01:18 2013
@@ -25,14 +25,12 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
-
-import org.codehaus.jackson.annotate.JsonIgnore;
import org.apache.syncope.common.AbstractBaseBean;
+import org.codehaus.jackson.annotate.JsonIgnore;
@XmlRootElement(name = "workflowForm")
@XmlType
@@ -40,6 +38,8 @@ public class WorkflowFormTO extends Abst
private static final long serialVersionUID = -7044543391316529128L;
+ private long userId;
+
private String taskId;
private String key;
@@ -58,6 +58,14 @@ public class WorkflowFormTO extends Abst
properties = new ArrayList<WorkflowFormPropertyTO>();
}
+ public long getUserId() {
+ return userId;
+ }
+
+ public void setUserId(long userId) {
+ this.userId = userId;
+ }
+
public String getTaskId() {
return taskId;
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java Fri Feb 8 17:01:18 2013
@@ -31,12 +31,15 @@ import org.apache.syncope.common.to.Work
import org.apache.syncope.common.to.WorkflowFormTO;
import org.apache.syncope.common.validation.SyncopeClientCompositeErrorException;
import org.apache.syncope.console.commons.MapChoiceRenderer;
+import org.apache.syncope.console.markup.html.list.AltListView;
import org.apache.syncope.console.rest.ApprovalRestClient;
+import org.apache.syncope.console.rest.UserRestClient;
import org.apache.syncope.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
import org.apache.syncope.console.wicket.markup.html.form.AjaxNumberFieldPanel;
import org.apache.syncope.console.wicket.markup.html.form.AjaxTextFieldPanel;
import org.apache.syncope.console.wicket.markup.html.form.DateTimeFieldPanel;
import org.apache.syncope.console.wicket.markup.html.form.FieldPanel;
+import org.apache.wicket.Page;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
@@ -57,13 +60,23 @@ public class ApprovalModalPage extends B
private static final long serialVersionUID = -8847854414429745216L;
+ private final static int USER_WIN_HEIGHT = 550;
+
+ private final static int USER_WIN_WIDTH = 800;
+
@SpringBean
private ApprovalRestClient restClient;
+ @SpringBean
+ private UserRestClient userRestClient;
+
+ private final ModalWindow editUserWin;
+
public ApprovalModalPage(final PageReference callerPageRef, final ModalWindow window, final WorkflowFormTO formTO) {
super();
-
+
IModel<List<WorkflowFormPropertyTO>> formProps = new LoadableDetachableModel<List<WorkflowFormPropertyTO>>() {
+
private static final long serialVersionUID = 3169142472626817508L;
@Override
@@ -72,79 +85,112 @@ public class ApprovalModalPage extends B
}
};
- final ListView<WorkflowFormPropertyTO> propView = new ListView<WorkflowFormPropertyTO>("propView", formProps) {
- private static final long serialVersionUID = 9101744072914090143L;
+ final ListView<WorkflowFormPropertyTO> propView =
+ new AltListView<WorkflowFormPropertyTO>("propView", formProps) {
- @Override
- protected void populateItem(final ListItem<WorkflowFormPropertyTO> item) {
- final WorkflowFormPropertyTO prop = item.getModelObject();
+ private static final long serialVersionUID = 9101744072914090143L;
- Label label = new Label("key", prop.getName() == null
- ? prop.getId()
- : prop.getName());
- item.add(label);
-
- FieldPanel field;
- switch (prop.getType()) {
- case Boolean:
- field = new AjaxDropDownChoicePanel("value", label.getDefaultModelObjectAsString(),
- new Model(Boolean.valueOf(prop.getValue()))).setChoices(Arrays.asList(
- new String[]{"Yes", "No"}));
- break;
-
- case Date:
- SimpleDateFormat df = StringUtils.isNotBlank(prop.getDatePattern())
- ? new SimpleDateFormat(prop.getDatePattern())
- : new SimpleDateFormat();
- Date parsedDate = null;
- if (StringUtils.isNotBlank(prop.getValue())) {
- try {
- parsedDate = df.parse(prop.getValue());
- } catch (ParseException e) {
- LOG.error("Unparsable date: {}", prop.getValue(), e);
- }
+ @Override
+ protected void populateItem(final ListItem<WorkflowFormPropertyTO> item) {
+ final WorkflowFormPropertyTO prop = item.getModelObject();
+
+ Label label = new Label("key", prop.getName() == null
+ ? prop.getId()
+ : prop.getName());
+ item.add(label);
+
+ FieldPanel field;
+ switch (prop.getType()) {
+ case Boolean:
+ field = new AjaxDropDownChoicePanel("value", label.getDefaultModelObjectAsString(),
+ new Model(Boolean.valueOf(prop.getValue()))).setChoices(Arrays.asList(
+ new String[]{"Yes", "No"}));
+ break;
+
+ case Date:
+ SimpleDateFormat df = StringUtils.isNotBlank(prop.getDatePattern())
+ ? new SimpleDateFormat(prop.getDatePattern())
+ : new SimpleDateFormat();
+ Date parsedDate = null;
+ if (StringUtils.isNotBlank(prop.getValue())) {
+ try {
+ parsedDate = df.parse(prop.getValue());
+ } catch (ParseException e) {
+ LOG.error("Unparsable date: {}", prop.getValue(), e);
+ }
+ }
+
+ field = new DateTimeFieldPanel("value", label.getDefaultModelObjectAsString(),
+ new Model(parsedDate), df.toLocalizedPattern());
+ break;
+
+ case Enum:
+ MapChoiceRenderer<String, String> enumCR =
+ new MapChoiceRenderer<String, String>(prop.getEnumValues());
+
+ field = new AjaxDropDownChoicePanel("value", label.getDefaultModelObjectAsString(),
+ new Model(prop.getValue())).setChoiceRenderer(enumCR).setChoices(new Model() {
+
+ private static final long serialVersionUID = -858521070366432018L;
+
+ @Override
+ public Serializable getObject() {
+ return new ArrayList(prop.getEnumValues().keySet());
+ }
+ });
+ break;
+
+ case Long:
+ field = new AjaxNumberFieldPanel("value", label.getDefaultModelObjectAsString(),
+ new Model(Long.valueOf(prop.getValue())), Long.class);
+ break;
+
+ case String:
+ default:
+ field = new AjaxTextFieldPanel("value", PARENT_PATH, new Model(prop.getValue()));
+ break;
+ }
+
+ field.setReadOnly(!prop.isWritable());
+ if (prop.isRequired()) {
+ field.addRequiredLabel();
}
- field = new DateTimeFieldPanel("value", label.getDefaultModelObjectAsString(), new Model(
- parsedDate), df.toLocalizedPattern());
- break;
-
- case Enum:
- MapChoiceRenderer<String, String> enumCR =
- new MapChoiceRenderer<String, String>(prop.getEnumValues());
-
- field = new AjaxDropDownChoicePanel("value", label.getDefaultModelObjectAsString(),
- new Model(prop.getValue())).setChoiceRenderer(enumCR).setChoices(new Model() {
- private static final long serialVersionUID = -858521070366432018L;
+ item.add(field);
+ }
+ };
- @Override
- public Serializable getObject() {
- return new ArrayList(prop.getEnumValues().keySet());
- }
- });
- break;
+ final AjaxButton userDetails = new IndicatingAjaxButton("userDetails", new Model(getString("userDetails"))) {
- case Long:
- field = new AjaxNumberFieldPanel("value", label.getDefaultModelObjectAsString(),
- new Model(Long.valueOf(prop.getValue())), Long.class);
- break;
-
- case String:
- default:
- field = new AjaxTextFieldPanel("value", PARENT_PATH, new Model(prop.getValue()));
- break;
- }
+ private static final long serialVersionUID = -4804368561204623354L;
- field.setReadOnly(!prop.isWritable());
- if (prop.isRequired()) {
- field.addRequiredLabel();
- }
+ @Override
+ protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
+ editUserWin.setPageCreator(new ModalWindow.PageCreator() {
+
+ private static final long serialVersionUID = -7834632442532690940L;
+
+ @Override
+ public Page createPage() {
+ return new ViewUserModalPage(ApprovalModalPage.this.getPageReference(), editUserWin,
+ userRestClient.read(formTO.getUserId())) {
+
+ @Override
+ protected void closeAction(final AjaxRequestTarget target, final Form form) {
+ setResponsePage(ApprovalModalPage.this);
+ }
+ };
+ }
+ });
- item.add(field);
+ editUserWin.show(target);
}
};
+ MetaDataRoleAuthorizationStrategy.authorize(userDetails, ENABLE,
+ xmlRolesReader.getAllAllowedRoles("Users", "read"));
final AjaxButton submit = new IndicatingAjaxButton("apply", new Model(getString("submit"))) {
+
private static final long serialVersionUID = -958724007591692537L;
@Override
@@ -197,6 +243,7 @@ public class ApprovalModalPage extends B
};
final AjaxButton cancel = new IndicatingAjaxButton("cancel", new ResourceModel("cancel")) {
+
private static final long serialVersionUID = -958724007591692537L;
@Override
@@ -208,17 +255,25 @@ public class ApprovalModalPage extends B
protected void onError(final AjaxRequestTarget target, final Form form) {
}
};
-
+
cancel.setDefaultFormProcessing(false);
Form form = new Form("form");
form.add(propView);
+ form.add(userDetails);
form.add(submit);
form.add(cancel);
MetaDataRoleAuthorizationStrategy.authorize(form, ENABLE, xmlRolesReader.getAllAllowedRoles("Approval",
"submit"));
+ editUserWin = new ModalWindow("editUserWin");
+ editUserWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
+ editUserWin.setInitialHeight(USER_WIN_HEIGHT);
+ editUserWin.setInitialWidth(USER_WIN_WIDTH);
+ editUserWin.setCookieName("edit-user-modal");
+ add(editUserWin);
+
add(form);
}
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java Fri Feb 8 17:01:18 2013
@@ -46,6 +46,8 @@ public class EditUserModalPage extends U
@SpringBean
private UserRestClient userRestClient;
+ protected Form form;
+
private UserTO initialUserTO = null;
private StatusPanel statusPanel;
@@ -55,7 +57,7 @@ public class EditUserModalPage extends U
this.initialUserTO = AttributableOperations.clone(userTO);
- Form form = setupEditPanel();
+ form = setupEditPanel();
// add resource assignment details in case of update
if (userTO.getId() != 0) {
@@ -91,7 +93,6 @@ public class EditUserModalPage extends U
userTO = userRestClient.update(userMod);
}
}
-
}
@Override
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Todo.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Todo.java?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Todo.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Todo.java Fri Feb 8 17:01:18 2013
@@ -173,8 +173,8 @@ public class Todo extends BasePage {
editApprovalWin.show(target);
}
- }, ActionLink.ActionType.EDIT, "Approval", "read", SyncopeSession.get().getUserId().equals(
- formTO.getOwner()));
+ }, ActionLink.ActionType.EDIT, "Approval", "read",
+ SyncopeSession.get().getUserId().equals(formTO.getOwner()));
cellItem.add(panel);
}
Copied: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ViewUserModalPage.java (from r1444083, syncope/branches/1_0_X/console/src/main/java/org/apache/syncope/console/pages/ViewUserModalPage.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ViewUserModalPage.java?p2=syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ViewUserModalPage.java&p1=syncope/branches/1_0_X/console/src/main/java/org/apache/syncope/console/pages/ViewUserModalPage.java&r1=1444083&r2=1444147&rev=1444147&view=diff
==============================================================================
--- syncope/branches/1_0_X/console/src/main/java/org/apache/syncope/console/pages/ViewUserModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ViewUserModalPage.java Fri Feb 8 17:01:18 2013
@@ -18,7 +18,7 @@
*/
package org.apache.syncope.console.pages;
-import org.apache.syncope.client.to.UserTO;
+import org.apache.syncope.common.to.UserTO;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
@@ -32,6 +32,7 @@ public class ViewUserModalPage extends E
public ViewUserModalPage(final PageReference callerPageRef, final ModalWindow window, final UserTO userTO) {
super(callerPageRef, window, userTO);
form.setEnabled(false);
+ form.get("cancel").setVisible(false);
}
@Override
Modified: syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage.html
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage.html?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage.html (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage.html Fri Feb 8 17:01:18 2013
@@ -20,42 +20,31 @@ under the License.
<p class="ui-widget ui-corner-all ui-widget-header"><wicket:message key="title"/></p>
<div style="margin:10px">
<form wicket:id="form">
- <div id="tabs">
- <ul>
- <li class="tabs-selected">
- <a href="#tabs-1"><span><wicket:message key="tab1"/></span></a>
- </li>
- </ul>
- <div id="tabs-1">
- <div id="formtable">
- <div class="tablerow" wicket:id="propView">
- <div class="tablecolumn_label medium_dynamicsize">
- <span wicket:id="key">[key]</span>
- </div>
- <div class="tablecolumn_field medium_dynamicsize">
- <span wicket:id="value">[value]</span>
-
- </div>
- </div>
-
- <!-- inside the container in order to re-process javascript -->
- <script type="text/javascript">
- $(function() {
- $('#formtable div.tablerow:even').addClass("alt");
- });
- </script>
+ <div id="formtable">
+ <div class="tablerow" wicket:id="propView">
+ <div class="tablecolumn_label medium_dynamicsize">
+ <span wicket:id="key">[key]</span>
</div>
+ <div class="tablecolumn_field medium_dynamicsize">
+ <span wicket:id="value">[value]</span>
- <div style="margin: 20px 10px 0">
- <input type="submit"
- class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
- wicket:id="apply"/>
- <input type="button"
- accept=""class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
- wicket:id="cancel"/>
</div>
</div>
</div>
+
+ <div style="margin: 20px 0">
+ <input type="button"
+ class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
+ wicket:id="userDetails"/>
+ <input type="submit"
+ class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
+ wicket:id="apply"/>
+ <input type="button"
+ accept=""class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
+ wicket:id="cancel"/>
+ </div>
+
</form>
+ <div wicket:id="editUserWin">[Show modal window for editing user under approval]</div>
</div>
</wicket:extend>
Modified: syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage.properties
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage.properties?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage.properties (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage.properties Fri Feb 8 17:01:18 2013
@@ -14,5 +14,5 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-tab1=Approval form
-title=Workflow
+title=Approval form
+userDetails=User details
Modified: syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage_it.properties
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage_it.properties?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage_it.properties (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ApprovalModalPage_it.properties Fri Feb 8 17:01:18 2013
@@ -14,5 +14,5 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-tab1=Form di approvazione
-title=Workflow
+title=Form di approvazione
+userDetails=Dettagli utente
Modified: syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/Todo.html
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/Todo.html?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/Todo.html (original)
+++ syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/Todo.html Fri Feb 8 17:01:18 2013
@@ -17,49 +17,47 @@ specific language governing permissions
under the License.
-->
<wicket:extend>
+ <div id="tabs">
+ <ul>
+ <li class="tabs-selected"><a href="#tabs-1"><span><wicket:message key="approvals"/></span></a></li>
+ <li><a href="#tabs-2"><span><wicket:message key="userRequests"/></span></a></li>
+ </ul>
+ <div id="tabs-1">
+
+ <div id="users-contain" class="ui-widget" style="width:inherit;">
+ <span wicket:id="approvalContainer">
+ <table class="ui-widget ui-widget-content table-hover"
+ wicket:id="approvalTable"/>
+ </span>
+ <span style="float:right">
+ <form wicket:id="approvalPaginatorForm" style="display:inline">
+ <label><wicket:message key="displayRows"/></label>
+ <select class="text ui-widget-content ui-corner-all"
+ wicket:id="rowsChooser"/>
+ </form>
+ </span>
+ </div>
+ <div wicket:id="editApprovalWin">[Show modal window for editing approval]</div>
+ </div>
- <div id="tabs">
- <ul>
- <li class="tabs-selected"><a href="#tabs-1"><span><wicket:message key="approvals"/></span></a></li>
- <li><a href="#tabs-2"><span><wicket:message key="userRequests"/></span></a></li>
- </ul>
- <div id="tabs-1">
-
- <div id="users-contain" class="ui-widget" style="width:inherit;">
- <span wicket:id="approvalContainer">
- <table class="ui-widget ui-widget-content table-hover"
- wicket:id="approvalTable"/>
- </span>
- <span style="float:right">
- <form wicket:id="approvalPaginatorForm" style="display:inline">
- <label><wicket:message key="displayRows"/></label>
- <select class="text ui-widget-content ui-corner-all"
- wicket:id="rowsChooser"/>
- </form>
- </span>
- </div>
-
- <div wicket:id="editApprovalWin">[Show modal window for editing approval]</div>
- </div>
-
- <div id="tabs-2">
+ <div id="tabs-2">
- <div id="users-contain" class="ui-widget">
- <span wicket:id="userRequestContainer">
- <table class="ui-widget ui-widget-content table-hover"
- wicket:id="userRequestTable"/>
- </span>
- <span style="float:right">
- <form wicket:id="userRequestPaginatorForm" style="display:inline">
- <label><wicket:message key="displayRows"/></label>
- <select class="text ui-widget-content ui-corner-all"
- wicket:id="rowsChooser"/>
- </form>
- </span>
- </div>
+ <div id="users-contain" class="ui-widget">
+ <span wicket:id="userRequestContainer">
+ <table class="ui-widget ui-widget-content table-hover"
+ wicket:id="userRequestTable"/>
+ </span>
+ <span style="float:right">
+ <form wicket:id="userRequestPaginatorForm" style="display:inline">
+ <label><wicket:message key="displayRows"/></label>
+ <select class="text ui-widget-content ui-corner-all"
+ wicket:id="rowsChooser"/>
+ </form>
+ </span>
+ </div>
- <div wicket:id="editUserRequestWin">[Show modal window for editing user request]</div>
- </div>
+ <div wicket:id="editUserRequestWin">[Show modal window for editing user request]</div>
</div>
+ </div>
</wicket:extend>
Modified: syncope/trunk/console/src/main/webapp/css/style.css
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/webapp/css/style.css?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/console/src/main/webapp/css/style.css (original)
+++ syncope/trunk/console/src/main/webapp/css/style.css Fri Feb 8 17:01:18 2013
@@ -448,4 +448,8 @@ td.action{
.help a:hover {
color: blue;
text-decoration: none;
+}
+
+.tree-junction-expanded {
+ display: none;
}
\ No newline at end of file
Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserDAOImpl.java?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserDAOImpl.java Fri Feb 8 17:01:18 2013
@@ -89,7 +89,14 @@ public class UserDAOImpl extends Abstrac
+ " e " + "WHERE e.workflowId = :workflowId", SyncopeUser.class);
query.setParameter("workflowId", workflowId);
- return query.getSingleResult();
+ SyncopeUser result = null;
+ try {
+ result = query.getSingleResult();
+ } catch (NoResultException e) {
+ LOG.error("No user found with workflow id {}", workflowId, e);
+ }
+
+ return result;
}
@Override
Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java Fri Feb 8 17:01:18 2013
@@ -234,8 +234,7 @@ public class ActivitiUserWorkflowAdapter
propagateEnable = enabled;
}
- // save resources to be propagated and password for later -
- // after form submission - propagation
+ // save resources to be propagated and password for later - after form submission - propagation
PropagationByResource propByRes = new PropagationByResource();
propByRes.set(ResourceOperation.CREATE, user.getResourceNames());
@@ -505,14 +504,20 @@ public class ActivitiUserWorkflowAdapter
@SuppressWarnings("unchecked")
private WorkflowFormTO getFormTO(final Task task, final TaskFormData formData) {
WorkflowFormTO formTO = new WorkflowFormTO();
+
+ SyncopeUser user = userDAO.findByWorkflowId(task.getProcessInstanceId());
+ if (user == null) {
+ throw new NotFoundException("User with workflow id " + task.getProcessInstanceId());
+ }
+ formTO.setUserId(user.getId());
+
formTO.setTaskId(task.getId());
formTO.setKey(formData.getFormKey());
BeanUtils.copyProperties(task, formTO);
- WorkflowFormPropertyTO propertyTO;
for (FormProperty fProp : formData.getFormProperties()) {
- propertyTO = new WorkflowFormPropertyTO();
+ WorkflowFormPropertyTO propertyTO = new WorkflowFormPropertyTO();
BeanUtils.copyProperties(fProp, propertyTO, PROPERTY_IGNORE_PROPS);
propertyTO.setType(fromActivitiFormType(fProp.getType()));
@@ -533,17 +538,14 @@ public class ActivitiUserWorkflowAdapter
public List<WorkflowFormTO> getForms() {
List<WorkflowFormTO> forms = new ArrayList<WorkflowFormTO>();
- TaskFormData formData;
for (Task task : taskService.createTaskQuery().taskVariableValueEquals(TASK_IS_FORM, Boolean.TRUE).list()) {
try {
- formData = formService.getTaskFormData(task.getId());
+ TaskFormData formData = formService.getTaskFormData(task.getId());
+ if (formData != null && !formData.getFormProperties().isEmpty()) {
+ forms.add(getFormTO(task, formData));
+ }
} catch (ActivitiException e) {
LOG.debug("No form found for task {}", task.getId(), e);
- formData = null;
- }
-
- if (formData != null && !formData.getFormProperties().isEmpty()) {
- forms.add(getFormTO(task, formData));
}
}
Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/task/Update.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/task/Update.java?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/task/Update.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/task/Update.java Fri Feb 8 17:01:18 2013
@@ -28,7 +28,6 @@ public class Update extends AbstractActi
@Override
protected void doExecute(final DelegateExecution execution) throws Exception {
-
SyncopeUser user = (SyncopeUser) execution.getVariable(ActivitiUserWorkflowAdapter.SYNCOPE_USER);
UserMod userMod = (UserMod) execution.getVariable(ActivitiUserWorkflowAdapter.USER_MOD);
Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java?rev=1444147&r1=1444146&r2=1444147&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java Fri Feb 8 17:01:18 2013
@@ -558,6 +558,8 @@ public class UserTestITCase extends Abst
WorkflowFormTO form = userService.getFormForUser(userTO.getId());
assertNotNull(form);
+ assertNotNull(form.getUserId());
+ assertEquals(userTO.getId(), form.getUserId());
assertNotNull(form.getTaskId());
assertNull(form.getOwner());