1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.console.panels;
20
21 import org.apache.syncope.client.console.SyncopeConsoleSession;
22 import org.apache.syncope.client.console.rest.UserRequestRestClient;
23 import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
24 import org.apache.syncope.client.ui.commons.Constants;
25 import org.apache.syncope.client.ui.commons.pages.BaseWebPage;
26 import org.apache.syncope.client.ui.commons.panels.SubmitableModalPanel;
27 import org.apache.syncope.client.ui.commons.panels.WizardModalPanel;
28 import org.apache.syncope.common.lib.to.UserRequestForm;
29 import org.apache.wicket.PageReference;
30 import org.apache.wicket.ajax.AjaxRequestTarget;
31 import org.apache.wicket.markup.html.panel.Panel;
32 import org.apache.wicket.spring.injection.annot.SpringBean;
33
34 public class UserRequestFormModal extends Panel implements SubmitableModalPanel, WizardModalPanel<UserRequestForm> {
35
36 private static final long serialVersionUID = -8847854414429745216L;
37
38 @SpringBean
39 protected UserRequestRestClient userRequestRestClient;
40
41 protected final BaseModal<?> modal;
42
43 protected final UserRequestForm formTO;
44
45 protected final PageReference pageRef;
46
47 public UserRequestFormModal(final BaseModal<?> modal, final PageReference pageRef, final UserRequestForm formTO) {
48 super(BaseModal.CONTENT_ID);
49 this.modal = modal;
50 this.formTO = formTO;
51 this.pageRef = pageRef;
52
53 MultilevelPanel mlp = new MultilevelPanel("userRequestForm");
54 mlp.setFirstLevel(new UserRequestFormPanel(MultilevelPanel.FIRST_LEVEL_ID, formTO) {
55
56 private static final long serialVersionUID = -2195387360323687302L;
57
58 @Override
59 protected void viewDetails(final AjaxRequestTarget target) {
60 mlp.next(getString("userRequest.details"), new UserRequestFormDetails(pageRef, formTO), target);
61 }
62 });
63 add(mlp);
64 }
65
66 @Override
67 public void onSubmit(final AjaxRequestTarget target) {
68 userRequestRestClient.submitForm(formTO);
69 this.modal.show(false);
70 this.modal.close(target);
71 SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
72 }
73
74 @Override
75 public void onError(final AjaxRequestTarget target) {
76 ((BaseWebPage) pageRef.getPage()).getNotificationPanel().refresh(target);
77 }
78
79 @Override
80 public UserRequestForm getItem() {
81 return this.formTO;
82 }
83 }