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.search;
20
21 import java.io.Serializable;
22 import org.apache.syncope.client.console.SyncopeConsoleSession;
23 import org.apache.syncope.client.console.panels.TogglePanel;
24 import org.apache.syncope.client.console.rest.FIQLQueryRestClient;
25 import org.apache.syncope.client.ui.commons.Constants;
26 import org.apache.syncope.client.ui.commons.pages.BaseWebPage;
27 import org.apache.syncope.common.lib.to.FIQLQueryTO;
28 import org.apache.wicket.PageReference;
29 import org.apache.wicket.ajax.AjaxRequestTarget;
30 import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
31 import org.apache.wicket.markup.html.form.Form;
32 import org.apache.wicket.markup.html.form.TextField;
33 import org.apache.wicket.model.Model;
34 import org.apache.wicket.spring.injection.annot.SpringBean;
35
36 public class SaveFIQLQuery extends TogglePanel<Serializable> {
37
38 private static final long serialVersionUID = -1519998802447270269L;
39
40 @SpringBean
41 protected FIQLQueryRestClient fiqlQueryRestClient;
42
43 protected String fiql;
44
45 protected TextField<String> name;
46
47 public SaveFIQLQuery(final String id, final String target, final PageReference pageRef) {
48 super(id, pageRef);
49
50 Form<?> form = new Form<>("form");
51 addInnerObject(form);
52
53 name = new TextField<>("name", new Model<>());
54 form.add(name);
55
56 form.add(new AjaxSubmitLink("submit", form) {
57
58 private static final long serialVersionUID = -5697330186048290602L;
59
60 @Override
61 protected void onSubmit(final AjaxRequestTarget art) {
62 try {
63 FIQLQueryTO query = new FIQLQueryTO();
64 query.setName(name.getModelObject());
65 query.setTarget(target);
66 query.setFiql(fiql);
67
68 fiqlQueryRestClient.create(query);
69
70 name.getModel().setObject(null);
71 name.setRequired(false);
72
73 SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
74 toggle(art, false);
75 } catch (Exception e) {
76 LOG.error("While creating new FIQL query", e);
77 SyncopeConsoleSession.get().onException(e);
78 }
79 ((BaseWebPage) pageRef.getPage()).getNotificationPanel().refresh(art);
80 }
81
82 @Override
83 protected void onError(final AjaxRequestTarget target) {
84 ((BaseWebPage) pageRef.getPage()).getNotificationPanel().refresh(target);
85 }
86 });
87 }
88
89 public void setFiql(final String fiql) {
90 this.fiql = fiql;
91 this.name.setRequired(true);
92 }
93
94 @Override
95 public void toggle(final AjaxRequestTarget target, final boolean toggle) {
96 if (toggle) {
97 setHeader(target, getString("newFIQLQuery"));
98 }
99 super.toggle(target, toggle);
100 }
101 }