Repository: syncope Updated Branches: refs/heads/master 660aa70ad -> 4545e3f26
[SYNCOPE-920] provides recipient provider extension class name selection feature Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/4545e3f2 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/4545e3f2 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/4545e3f2 Branch: refs/heads/master Commit: 4545e3f26c8e8c2f0cb581de7d598f7ea6608a3b Parents: 660aa70a Author: fmartelli <[email protected]> Authored: Fri Aug 12 16:15:47 2016 +0200 Committer: fmartelli <[email protected]> Committed: Fri Aug 12 16:15:47 2016 +0200 ---------------------------------------------------------------------- .../NotificationWizardBuilder.java | 51 ++++++++++++++------ .../NotificationWizardBuilder$Recipients.html | 3 ++ ...ificationWizardBuilder$Recipients.properties | 3 +- ...cationWizardBuilder$Recipients_it.properties | 3 +- ...ionWizardBuilder$Recipients_pt_BR.properties | 3 +- ...cationWizardBuilder$Recipients_ru.properties | 3 +- 6 files changed, 46 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/4545e3f2/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java index cf97161..ac69b7c 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java @@ -27,6 +27,7 @@ import java.util.List; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.Transformer; import org.apache.commons.lang3.tuple.Pair; +import org.apache.syncope.client.console.SyncopeConsoleSession; import org.apache.syncope.client.console.commons.Constants; import org.apache.syncope.client.console.panels.search.AbstractSearchPanel; import org.apache.syncope.client.console.panels.search.AnyObjectSearchPanel; @@ -62,6 +63,7 @@ import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; +import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.model.ResourceModel; @@ -214,22 +216,22 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra new AnyTypeRestClient().list(), EntityTOUtils.<AnyTypeTO>keyTransformer(), new ArrayList<String>()); - final AjaxDropDownChoicePanel<String> type = - new AjaxDropDownChoicePanel<>("about", "about", new Model<String>() { + final AjaxDropDownChoicePanel<String> type = new AjaxDropDownChoicePanel<>("about", "about", + new Model<String>() { - private static final long serialVersionUID = -2350296434572623272L; + private static final long serialVersionUID = -2350296434572623272L; - @Override - public String getObject() { - return model.getObject().getLeft(); - } + @Override + public String getObject() { + return model.getObject().getLeft(); + } - @Override - public void setObject(final String object) { - model.setObject(Pair.of(object, model.getObject().getRight())); - } + @Override + public void setObject(final String object) { + model.setObject(Pair.of(object, model.getObject().getRight())); + } - }); + }); type.setChoices(anyTypeTOs); type.addRequiredLabel(); add(type); @@ -300,8 +302,8 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra aboutContainer.setOutputMarkupId(true); add(aboutContainer); - final IModel<List<Pair<String, List<SearchClause>>>> model = - new PropertyModel<>(modelObject, "aboutClauses"); + final IModel<List<Pair<String, List<SearchClause>>>> model + = new PropertyModel<>(modelObject, "aboutClauses"); aboutContainer.add(new MultiPanel<Pair<String, List<SearchClause>>>("abouts", "abouts", model, false) { @@ -343,12 +345,23 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra private static final long serialVersionUID = -7709805590497687958L; + private final IModel<List<String>> recipientProviders = new LoadableDetachableModel<List<String>>() { + + private static final long serialVersionUID = 5275935387613157447L; + + @Override + protected List<String> load() { + return new ArrayList<>( + SyncopeConsoleSession.get().getPlatformInfo().getNotificationRecipientsProviders()); + } + }; + public Recipients(final NotificationWrapper modelObject) { final NotificationTO notificationTO = modelObject.getInnerObject(); final boolean createFlag = notificationTO.getKey() == null; - final AjaxTextFieldPanel staticRecipientsFieldPanel = - new AjaxTextFieldPanel("panel", "staticRecipients", new Model<String>()); + final AjaxTextFieldPanel staticRecipientsFieldPanel = new AjaxTextFieldPanel("panel", "staticRecipients", + new Model<String>()); staticRecipientsFieldPanel.addValidator(EmailAddressValidator.getInstance()); final MultiFieldPanel<String> staticRecipients = new MultiFieldPanel.Builder<>( @@ -362,6 +375,12 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra required(false).build("recipients"); add(recipients); + AjaxDropDownChoicePanel<String> recipientsProviderClassName = new AjaxDropDownChoicePanel<>( + "recipientsProviderClassName", "recipientsProviderClassName", + new PropertyModel<String>(notificationTO, "recipientsProviderClassName"), false); + recipientsProviderClassName.setChoices(recipientProviders.getObject()); + add(recipientsProviderClassName); + final AjaxCheckBoxPanel selfAsRecipient = new AjaxCheckBoxPanel("selfAsRecipient", getString("selfAsRecipient"), new PropertyModel<Boolean>(notificationTO, "selfAsRecipient")); add(selfAsRecipient); http://git-wip-us.apache.org/repos/asf/syncope/blob/4545e3f2/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.html index b8387d6..1910ce6 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.html +++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.html @@ -26,6 +26,9 @@ under the License. <div class="form-group form-group-inline"> <span wicket:id="recipients">[recipients]</span> </div> + <div class="form-group"> + <span wicket:id="recipientsProviderClassName">[recipientsProviderClassName]</span> + </div> <div id="userFilter" class="form-group box"> <div id="title"> <span for="userNotifications"><wicket:message key="userNotifications"/></span> http://git-wip-us.apache.org/repos/asf/syncope/blob/4545e3f2/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.properties index dec4920..b94947e 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients.properties @@ -15,7 +15,8 @@ # specific language governing permissions and limitations # under the License. recipients=Recipients -staticRecipients=Recipients +recipientsProviderClassName=Notification recipient provider +staticRecipients=Static recipients selfAsRecipient=Include users matching About userNotifications=User notifications userNotificationsWarning=Do not select this checkbox unless events are not targeted at users http://git-wip-us.apache.org/repos/asf/syncope/blob/4545e3f2/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_it.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_it.properties index 4ee971c..bc98ce5 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_it.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_it.properties @@ -15,8 +15,9 @@ # specific language governing permissions and limitations # under the License. recipients=Destinatari -staticRecipients=Destinatari +staticRecipients=Destinatari fissi selfAsRecipient=Includi i soggetti userNotifications=Notifiche utente userNotificationsWarning=Non selezionare questa checkbox se gli eventi catturati non riguardano espressamente utenti search=Cerca destinatari +recipientsProviderClassName=Provider destinatari notifica http://git-wip-us.apache.org/repos/asf/syncope/blob/4545e3f2/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_pt_BR.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_pt_BR.properties index 33da973..43f0cfc 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_pt_BR.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_pt_BR.properties @@ -15,8 +15,9 @@ # specific language governing permissions and limitations # under the License. recipients=Destinat\u00e1rios -staticRecipients=Destinat\u00e1rios +staticRecipients=Static recipients selfAsRecipient=Incluir usu\u00e1rios relacionados Sobre userNotifications=Notifica\u00e7\u00f5es do usu\u00e1rio userNotificationsWarning=N\u00e3o selecione esta op\u00e7\u00e3o a menos que os eventos n\u00e3o s\u00e3o direcionados a usu\u00e1rios search=Pesquisa para os destinat\u00e1rios +recipientsProviderClassName=Notification recipient provider http://git-wip-us.apache.org/repos/asf/syncope/blob/4545e3f2/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_ru.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_ru.properties index ffa20ac..bf94d76 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_ru.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Recipients_ru.properties @@ -16,8 +16,9 @@ # under the License. # recipients=\u041f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0438 -staticRecipients=\u041f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0438 +staticRecipients=Static recipients selfAsRecipient=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 userNotifications=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 userNotificationsWarning=\u041d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 search=\u041f\u043e\u0438\u0441\u043a \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439 +recipientsProviderClassName=Notification recipient provider
