http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java deleted file mode 100644 index af502d2..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import java.util.ArrayList; -import org.apache.commons.lang3.SerializationUtils; -import org.apache.syncope.client.console.commons.Mode; -import org.apache.syncope.client.console.commons.status.StatusBean; -import org.apache.syncope.client.console.panels.AccountInformationPanel; -import org.apache.syncope.client.console.panels.MembershipsPanel; -import org.apache.syncope.client.console.panels.ResourcesPanel; -import org.apache.syncope.client.console.panels.StatusPanel; -import org.apache.syncope.common.lib.AttributableOperations; -import org.apache.syncope.common.lib.mod.UserMod; -import org.apache.syncope.common.lib.to.UserTO; -import org.apache.wicket.PageReference; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.model.ResourceModel; - -/** - * Modal window with User form. - */ -public class EditUserModalPage extends UserModalPage { - - private static final long serialVersionUID = -6479209496805705739L; - - protected Form form; - - private final UserTO initialUserTO; - - private StatusPanel statusPanel; - - public EditUserModalPage(final PageReference pageRef, final ModalWindow window, final UserTO userTO) { - super(pageRef, window, userTO, Mode.ADMIN, true); - - this.initialUserTO = SerializationUtils.clone(userTO); - - form = setupEditPanel(); - - // add resource assignment details in case of update - if (userTO.getKey() != 0) { - form.addOrReplace(new Label("pwdChangeInfo", new ResourceModel("pwdChangeInfo"))); - - statusPanel = new StatusPanel("statuspanel", userTO, new ArrayList<StatusBean>(), getPageReference()); - statusPanel.setOutputMarkupId(true); - MetaDataRoleAuthorizationStrategy.authorize( - statusPanel, RENDER, xmlRolesReader.getEntitlement("Resources", "getConnectorObject")); - form.addOrReplace(statusPanel); - - form.addOrReplace(new AccountInformationPanel("accountinformation", userTO)); - - form.addOrReplace(new ResourcesPanel.Builder("resources").attributableTO(userTO). - statusPanel(statusPanel).build()); - - form.addOrReplace(new MembershipsPanel("memberships", userTO, mode, statusPanel, getPageReference())); - } - } - - @SuppressWarnings("rawtypes") - @Override - protected void submitAction(final AjaxRequestTarget target, final Form form) { - final UserTO updatedUserTO = (UserTO) form.getModelObject(); - - if (updatedUserTO.getKey() == 0) { - userTO = userRestClient.create(updatedUserTO, storePassword.getModelObject()); - } else { - final UserMod userMod = AttributableOperations.diff(updatedUserTO, initialUserTO); - - if (statusPanel != null) { - userMod.setPwdPropRequest(statusPanel.getStatusMod()); - } - - // update user just if it is changed - if (!userMod.isEmpty()) { - userTO = userRestClient.update(initialUserTO.getETagValue(), userMod); - } - } - } - - @SuppressWarnings("rawtypes") - @Override - protected void closeAction(final AjaxRequestTarget target, final Form form) { - setResponsePage(new ResultStatusModalPage.Builder(window, userTO).mode(mode).build()); - } -}
http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/ErrorPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/ErrorPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/ErrorPage.java deleted file mode 100644 index db46171..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/ErrorPage.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import org.apache.wicket.Page; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; -import org.apache.wicket.model.Model; -import org.apache.wicket.request.mapper.parameter.PageParameters; - -/** - * Error WebPage. - */ -public class ErrorPage extends BasePage { - - private static final long serialVersionUID = -390761262038796657L; - - public ErrorPage(final PageParameters parameters) { - super(parameters); - - add(new Label("errorTitle", new Model<String>(parameters.get("errorTitle").toString()))); - add(new Label("errorMessage", new Model<String>(parameters.get("errorMessage").toString()))); - - add(new BookmarkablePageLink<Page>("home", getApplication().getHomePage())); - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/ExecMessageModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/ExecMessageModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/ExecMessageModalPage.java deleted file mode 100644 index e39f3fc..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/ExecMessageModalPage.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.model.Model; - -public class ExecMessageModalPage extends BaseModalPage { - - private static final long serialVersionUID = 3163146190501510888L; - - public ExecMessageModalPage(final String message) { - final Label dialogContent = new Label("message", new Model<String>(message)); - add(dialogContent.setOutputMarkupId(true)); - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/FailureMessageModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/FailureMessageModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/FailureMessageModalPage.java deleted file mode 100644 index c0ee7ec..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/FailureMessageModalPage.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.model.Model; - -public class FailureMessageModalPage extends BaseModalPage { - - private static final long serialVersionUID = 9216117990503199258L; - - public FailureMessageModalPage(final String message, final String failureMessage) { - final Label executionFailureMessage; - if (!failureMessage.isEmpty()) { - executionFailureMessage = new Label("failureMessage", new Model<String>(failureMessage)); - } else { - executionFailureMessage = new Label("failureMessage"); - } - add(executionFailureMessage.setOutputMarkupId(true)); - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupModalPage.java deleted file mode 100644 index 8b4daa9..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupModalPage.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import java.util.ArrayList; -import java.util.List; -import org.apache.commons.lang3.SerializationUtils; -import org.apache.syncope.client.console.commons.Constants; -import org.apache.syncope.client.console.commons.Mode; -import org.apache.syncope.client.console.panels.GroupPanel; -import org.apache.syncope.common.lib.AttributableOperations; -import org.apache.syncope.common.lib.mod.GroupMod; -import org.apache.syncope.common.lib.to.GroupTO; -import org.apache.wicket.PageReference; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.markup.html.form.AjaxButton; -import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy; -import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.model.CompoundPropertyModel; -import org.apache.wicket.model.ResourceModel; - -/** - * Modal window with Group form. - */ -public class GroupModalPage extends BaseModalPage { - - private static final long serialVersionUID = -1732493223434085205L; - - protected final PageReference pageRef; - - protected final ModalWindow window; - - protected final Mode mode; - - protected final boolean createFlag; - - protected final GroupPanel groupPanel; - - protected GroupTO originalGroupTO; - - public GroupModalPage(final PageReference pageRef, final ModalWindow window, final GroupTO groupTO) { - this(pageRef, window, groupTO, Mode.ADMIN); - } - - @SuppressWarnings({ "unchecked", "rawtypes" }) - public GroupModalPage( - final PageReference pageRef, final ModalWindow window, final GroupTO groupTO, final Mode mode) { - - super(); - - this.pageRef = pageRef; - this.window = window; - this.mode = mode; - - this.createFlag = groupTO.getKey() == 0; - if (!createFlag) { - originalGroupTO = SerializationUtils.clone(groupTO); - } - - final Form<GroupTO> form = new Form<GroupTO>("groupForm"); - form.setMultiPart(true); - - add(new Label("displayName", groupTO.getKey() == 0 ? "" : groupTO.getDisplayName())); - - form.setModel(new CompoundPropertyModel<GroupTO>(groupTO)); - - this.groupPanel = new GroupPanel.Builder("groupPanel"). - form(form).groupTO(groupTO).groupModalPageMode(mode).pageRef(getPageReference()).build(); - form.add(groupPanel); - - final AjaxButton submit = new IndicatingAjaxButton(SUBMIT, new ResourceModel(SUBMIT)) { - - private static final long serialVersionUID = -958724007591692537L; - - @Override - protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { - try { - submitAction(target, form); - - if (pageRef.getPage() instanceof BasePage) { - ((BasePage) pageRef.getPage()).setModalResult(true); - } - - closeAction(target, form); - } catch (Exception e) { - error(getString(Constants.ERROR) + ": " + e.getMessage()); - feedbackPanel.refresh(target); - } - } - - @Override - protected void onError(final AjaxRequestTarget target, final Form<?> form) { - feedbackPanel.refresh(target); - } - }; - form.add(submit); - form.setDefaultButton(submit); - - final AjaxButton cancel = new IndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL)) { - - private static final long serialVersionUID = -958724007591692537L; - - @Override - protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { - closeAction(target, form); - } - }; - cancel.setDefaultFormProcessing(false); - form.add(cancel); - - MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, xmlRolesReader.getEntitlement("Groups", - createFlag - ? "create" - : "update")); - - add(form); - } - - protected void submitAction(final AjaxRequestTarget target, final Form<?> form) { - final GroupTO groupTO = (GroupTO) form.getDefaultModelObject(); - final List<String> entitlementList = new ArrayList<String>(groupPanel.getSelectedEntitlements()); - groupTO.getEntitlements().clear(); - groupTO.getEntitlements().addAll(entitlementList); - - GroupTO result; - if (createFlag) { - result = groupRestClient.create(groupTO); - } else { - GroupMod groupMod = AttributableOperations.diff(groupTO, originalGroupTO); - - // update group just if it is changed - if (groupMod.isEmpty()) { - result = groupTO; - } else { - result = groupRestClient.update(originalGroupTO.getETagValue(), groupMod); - } - } - - setResponsePage(new ResultStatusModalPage.Builder(window, result).build()); - } - - protected void closeAction(final AjaxRequestTarget target, final Form<?> form) { - window.close(target); - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupSelectModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupSelectModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupSelectModalPage.java deleted file mode 100644 index 97b7abf..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupSelectModalPage.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import java.lang.reflect.Constructor; -import javax.swing.tree.DefaultMutableTreeNode; -import org.apache.syncope.client.console.commons.GroupTreeBuilder; -import org.apache.syncope.client.console.wicket.markup.html.tree.DefaultMutableTreeNodeExpansion; -import org.apache.syncope.client.console.wicket.markup.html.tree.DefaultMutableTreeNodeExpansionModel; -import org.apache.syncope.client.console.wicket.markup.html.tree.TreeGroupProvider; -import org.apache.syncope.common.lib.to.GroupTO; -import org.apache.wicket.Component; -import org.apache.wicket.PageReference; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.event.Broadcast; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; -import org.apache.wicket.extensions.markup.html.repeater.tree.DefaultNestedTree; -import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider; -import org.apache.wicket.extensions.markup.html.repeater.tree.NestedTree; -import org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder; -import org.apache.wicket.extensions.markup.html.repeater.tree.theme.WindowsTheme; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; -import org.apache.wicket.spring.injection.annot.SpringBean; - -public class GroupSelectModalPage extends BaseModalPage { - - private static final long serialVersionUID = 2106489458494696439L; - - @SpringBean - private GroupTreeBuilder groupTreeBuilder; - - private final NestedTree<DefaultMutableTreeNode> tree; - - public GroupSelectModalPage(final PageReference pageRef, final ModalWindow window, final Class<?> payloadClass) { - super(); - - final ITreeProvider<DefaultMutableTreeNode> treeProvider = new TreeGroupProvider(groupTreeBuilder, true); - final DefaultMutableTreeNodeExpansionModel treeModel = new DefaultMutableTreeNodeExpansionModel(); - - tree = new DefaultNestedTree<DefaultMutableTreeNode>("treeTable", treeProvider, treeModel) { - - private static final long serialVersionUID = 7137658050662575546L; - - @Override - protected Component newContentComponent(final String id, final IModel<DefaultMutableTreeNode> node) { - final DefaultMutableTreeNode treeNode = node.getObject(); - final GroupTO groupTO = (GroupTO) treeNode.getUserObject(); - - return new Folder<DefaultMutableTreeNode>(id, GroupSelectModalPage.this.tree, node) { - - private static final long serialVersionUID = 9046323319920426493L; - - @Override - protected boolean isClickable() { - return true; - } - - @Override - protected IModel<?> newLabelModel(final IModel<DefaultMutableTreeNode> model) { - return new Model<>(groupTO.getDisplayName()); - } - - @Override - protected void onClick(final AjaxRequestTarget target) { - super.onClick(target); - - try { - Constructor<?> constructor = payloadClass.getConstructor(Long.class); - Object payload = constructor.newInstance(groupTO.getKey()); - - send(pageRef.getPage(), Broadcast.BREADTH, payload); - } catch (Exception e) { - LOG.error("Could not send group select event", e); - } - - window.close(target); - } - }; - } - }; - tree.add(new WindowsTheme()); - tree.setOutputMarkupId(true); - - DefaultMutableTreeNodeExpansion.get().expandAll(); - - this.add(tree); - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupTemplateModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupTemplateModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupTemplateModalPage.java deleted file mode 100644 index 293e402..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupTemplateModalPage.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import org.apache.syncope.client.console.commons.Mode; -import org.apache.syncope.common.lib.to.GroupTO; -import org.apache.syncope.common.lib.to.SyncTaskTO; -import org.apache.wicket.PageReference; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; -import org.apache.wicket.markup.html.form.Form; - -public class GroupTemplateModalPage extends GroupModalPage { - - private static final long serialVersionUID = -3849135555203409845L; - - private final SyncTaskTO syncTaskTO; - - public GroupTemplateModalPage(final PageReference callerPageRef, final ModalWindow window, - final SyncTaskTO syncTaskTO) { - - super(callerPageRef, window, syncTaskTO.getGroupTemplate() == null - ? new GroupTO() - : syncTaskTO.getGroupTemplate(), Mode.TEMPLATE); - - this.syncTaskTO = syncTaskTO; - } - - @Override - protected void submitAction(final AjaxRequestTarget target, final Form form) { - syncTaskTO.setGroupTemplate((GroupTO) form.getModelObject()); - taskRestClient.updateSyncTask(syncTaskTO); - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/Groups.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Groups.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Groups.java deleted file mode 100644 index 2e92940..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Groups.java +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import org.apache.syncope.client.console.commons.Constants; -import org.apache.syncope.client.console.panels.AbstractSearchResultPanel; -import org.apache.syncope.client.console.panels.GroupSearchPanel; -import org.apache.syncope.client.console.panels.GroupSearchResultPanel; -import org.apache.syncope.client.console.panels.GroupSummaryPanel; -import org.apache.syncope.client.console.rest.GroupRestClient; -import org.apache.syncope.client.console.wicket.ajax.markup.html.ClearIndicatingAjaxButton; -import org.apache.syncope.client.console.wicket.markup.html.tree.TreeGroupPanel; -import org.apache.wicket.Session; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.event.Broadcast; -import org.apache.wicket.event.IEvent; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.model.ResourceModel; -import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.wicket.spring.injection.annot.SpringBean; - -/** - * Groups WebPage. - */ -public class Groups extends BasePage { - - private static final long serialVersionUID = -2147758241610831969L; - - private static final int WIN_HEIGHT = 500; - - private static final int WIN_WIDTH = 800; - - @SpringBean - private GroupRestClient restClient; - - private final ModalWindow editGroupWin; - - private final WebMarkupContainer groupTabsContainer; - - public Groups(final PageParameters parameters) { - super(parameters); - - groupTabsContainer = new WebMarkupContainer("groupTabsContainer"); - groupTabsContainer.setOutputMarkupId(true); - add(groupTabsContainer); - - editGroupWin = new ModalWindow("editGroupWin"); - editGroupWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY); - editGroupWin.setInitialHeight(WIN_HEIGHT); - editGroupWin.setInitialWidth(WIN_WIDTH); - editGroupWin.setCookieName("edit-group-modal"); - add(editGroupWin); - - final TreeGroupPanel treePanel = new TreeGroupPanel("treePanel"); - treePanel.setOutputMarkupId(true); - groupTabsContainer.add(treePanel); - - final GroupSummaryPanel summaryPanel = new GroupSummaryPanel.Builder("summaryPanel") - .window(editGroupWin).callerPageRef(Groups.this.getPageReference()).build(); - groupTabsContainer.add(summaryPanel); - - editGroupWin.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { - - private static final long serialVersionUID = 8804221891699487139L; - - @Override - public void onClose(final AjaxRequestTarget target) { - final GroupSummaryPanel summaryPanel = (GroupSummaryPanel) groupTabsContainer.get("summaryPanel"); - - final TreeNodeClickUpdate data = new TreeNodeClickUpdate(target, - summaryPanel == null || summaryPanel.getSelectedNode() == null - ? 0 - : summaryPanel.getSelectedNode().getKey()); - - send(getPage(), Broadcast.BREADTH, data); - - if (modalResult) { - getSession().info(getString(Constants.OPERATION_SUCCEEDED)); - feedbackPanel.refresh(target); - modalResult = false; - } - - } - }); - - final AbstractSearchResultPanel searchResult = - new GroupSearchResultPanel("searchResult", true, null, getPageReference(), restClient); - add(searchResult); - - final Form searchForm = new Form("searchForm"); - add(searchForm); - - final GroupSearchPanel searchPanel = new GroupSearchPanel.Builder("searchPanel").build(); - searchForm.add(searchPanel); - - searchForm.add(new ClearIndicatingAjaxButton("search", new ResourceModel("search"), getPageReference()) { - - private static final long serialVersionUID = -958724007591692537L; - - @Override - protected void onSubmitInternal(final AjaxRequestTarget target, final Form<?> form) { - final String fiql = searchPanel.buildFIQL(); - LOG.debug("Node condition {}", fiql); - - doSearch(target, fiql, searchResult); - - Session.get().getFeedbackMessages().clear(); - searchPanel.getSearchFeedback().refresh(target); - } - - @Override - protected void onError(final AjaxRequestTarget target, final Form<?> form) { - searchPanel.getSearchFeedback().refresh(target); - } - }); - } - - private void doSearch(final AjaxRequestTarget target, final String fiql, - final AbstractSearchResultPanel resultsetPanel) { - - if (fiql == null) { - error(getString(Constants.SEARCH_ERROR)); - return; - } - - resultsetPanel.search(fiql, target); - } - - @Override - public void onEvent(final IEvent<?> event) { - super.onEvent(event); - - if (event.getPayload() instanceof TreeNodeClickUpdate) { - final TreeNodeClickUpdate update = (TreeNodeClickUpdate) event.getPayload(); - - final GroupSummaryPanel summaryPanel = new GroupSummaryPanel.Builder("summaryPanel") - .window(editGroupWin).callerPageRef(Groups.this.getPageReference()) - .selectedNodeId(update.getSelectedNodeId()).build(); - - groupTabsContainer.addOrReplace(summaryPanel); - update.getTarget().add(groupTabsContainer); - } - } - - public static class TreeNodeClickUpdate { - - private final AjaxRequestTarget target; - - private Long selectedNodeId; - - public TreeNodeClickUpdate(final AjaxRequestTarget target, final Long selectedNodeId) { - this.target = target; - this.selectedNodeId = selectedNodeId; - } - - public AjaxRequestTarget getTarget() { - return target; - } - - public Long getSelectedNodeId() { - return selectedNodeId; - } - - public void setSelectedNodeId(final Long selectedNodeId) { - this.selectedNodeId = selectedNodeId; - } - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/HomePage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/HomePage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/HomePage.java index 7b4ba68..6fa6b16 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/HomePage.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/HomePage.java @@ -18,16 +18,17 @@ */ package org.apache.syncope.client.console.pages; +import org.apache.syncope.client.console.SyncopeConsoleSession; +import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.request.mapper.parameter.PageParameters; -/** - * Syncope Home-Page. - */ public class HomePage extends BasePage { - private static final long serialVersionUID = -6712990478380766293L; + private static final long serialVersionUID = -1100228004207271270L; public HomePage(final PageParameters parameters) { super(parameters); + + add(new Label("username", SyncopeConsoleSession.get().getSelfTO().getUsername())); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/InfoModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/InfoModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/InfoModalPage.java deleted file mode 100644 index 83e0163..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/InfoModalPage.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import org.apache.syncope.client.console.SyncopeSession; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.link.ExternalLink; -import org.apache.wicket.spring.injection.annot.SpringBean; - -public class InfoModalPage extends BaseModalPage { - - private static final long serialVersionUID = 5558354927844399580L; - - @SpringBean(name = "site") - private String siteUrl; - - @SpringBean(name = "license") - private String licenseUrl; - - public InfoModalPage() { - super(); - - add(new ExternalLink("syncopeLink", siteUrl)); - add(new ExternalLink("licenseLink", licenseUrl)); - add(new Label("version", SyncopeSession.get().getVersion())); - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java deleted file mode 100644 index deaa359..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java +++ /dev/null @@ -1,365 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import java.security.AccessControlException; -import java.util.List; -import java.util.Locale; -import org.apache.commons.lang3.StringUtils; -import org.apache.syncope.client.console.SyncopeSession; -import org.apache.syncope.client.console.commons.Constants; -import org.apache.syncope.client.console.panels.NotificationPanel; -import org.apache.syncope.client.console.rest.UserSelfRestClient; -import org.apache.syncope.client.console.wicket.ajax.markup.html.ClearIndicatingAjaxLink; -import org.apache.syncope.client.console.wicket.markup.html.form.LinkPanel; -import org.apache.syncope.common.lib.to.UserTO; -import org.apache.syncope.common.lib.wrap.EntitlementTO; -import org.apache.syncope.common.rest.api.CollectionWrapper; -import org.apache.syncope.common.rest.api.service.EntitlementService; -import org.apache.wicket.Component; -import org.apache.wicket.Page; -import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.markup.html.AjaxLink; -import org.apache.wicket.ajax.markup.html.form.AjaxButton; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; -import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.markup.head.JavaScriptHeaderItem; -import org.apache.wicket.markup.html.WebPage; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.form.ChoiceRenderer; -import org.apache.wicket.markup.html.form.DropDownChoice; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.html.form.PasswordTextField; -import org.apache.wicket.markup.html.form.StatelessForm; -import org.apache.wicket.markup.html.form.TextField; -import org.apache.wicket.markup.html.panel.Fragment; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; -import org.apache.wicket.model.ResourceModel; -import org.apache.wicket.request.cycle.RequestCycle; -import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.wicket.spring.injection.annot.SpringBean; - -/** - * Syncope Login page. - */ -public class Login extends WebPage { - - private static final long serialVersionUID = -3744389270366566218L; - - private final static int SELF_REG_WIN_HEIGHT = 550; - - private final static int SELF_REG_WIN_WIDTH = 800; - - private final static int PWD_RESET_WIN_HEIGHT = 300; - - private final static int PWD_RESET_WIN_WIDTH = 800; - - @SpringBean(name = "version") - private String version; - - @SpringBean(name = "anonymousUser") - private String anonymousUser; - - @SpringBean(name = "anonymousKey") - private String anonymousKey; - - @SpringBean - private UserSelfRestClient userSelfRestClient; - - private final StatelessForm<Void> form; - - private final TextField<String> userIdField; - - private final TextField<String> passwordField; - - private final DropDownChoice<Locale> languageSelect; - - private final NotificationPanel feedbackPanel; - - public Login(final PageParameters parameters) { - super(parameters); - setStatelessHint(true); - - feedbackPanel = new NotificationPanel(Constants.FEEDBACK); - add(feedbackPanel); - - form = new StatelessForm<Void>("login"); - - userIdField = new TextField<String>("userId", new Model<String>()); - userIdField.setMarkupId("userId"); - form.add(userIdField); - - passwordField = new PasswordTextField("password", new Model<String>()); - passwordField.setMarkupId("password"); - form.add(passwordField); - - languageSelect = new LocaleDropDown("language"); - - form.add(languageSelect); - - AjaxButton submitButton = new AjaxButton("submit", new Model<String>(getString("submit"))) { - - private static final long serialVersionUID = 429178684321093953L; - - @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - try { - if (anonymousUser.equals(userIdField.getRawInput())) { - throw new AccessControlException("Illegal username"); - } - - authenticate(userIdField.getRawInput(), passwordField.getRawInput()); - - setResponsePage(WelcomePage.class, parameters); - } catch (AccessControlException e) { - error(getString("login-error")); - feedbackPanel.refresh(target); - SyncopeSession.get().resetClients(); - } - } - }; - - submitButton.setDefaultFormProcessing(false); - form.add(submitButton); - - add(form); - - // Modal window for self registration - final ModalWindow selfRegModalWin = new ModalWindow("selfRegModal"); - selfRegModalWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY); - selfRegModalWin.setInitialHeight(SELF_REG_WIN_HEIGHT); - selfRegModalWin.setInitialWidth(SELF_REG_WIN_WIDTH); - selfRegModalWin.setCookieName("self-reg-modal"); - add(selfRegModalWin); - - Fragment selfRegFrag; - if (userSelfRestClient.isSelfRegistrationAllowed()) { - selfRegFrag = new Fragment("selfRegistration", "selfRegAllowed", this); - - final AjaxLink<Void> selfRegLink = new ClearIndicatingAjaxLink<Void>("link", getPageReference()) { - - private static final long serialVersionUID = -7978723352517770644L; - - @Override - protected void onClickInternal(final AjaxRequestTarget target) { - selfRegModalWin.setPageCreator(new ModalWindow.PageCreator() { - - private static final long serialVersionUID = -7834632442532690940L; - - @Override - public Page createPage() { - // anonymous authentication needed for self-registration - authenticate(anonymousUser, anonymousKey); - - return new UserSelfModalPage(Login.this.getPageReference(), selfRegModalWin, new UserTO()); - } - }); - - selfRegModalWin.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { - - private static final long serialVersionUID = 251794406325329768L; - - @Override - public void onClose(final AjaxRequestTarget target) { - SyncopeSession.get().invalidate(); - } - }); - - selfRegModalWin.show(target); - } - }; - selfRegLink.add(new Label("linkTitle", getString("selfRegistration"))); - - Panel panel = new LinkPanel("selfRegistration", new ResourceModel("selfRegistration")); - panel.add(selfRegLink); - selfRegFrag.add(panel); - } else { - selfRegFrag = new Fragment("selfRegistration", "selfRegNotAllowed", this); - } - add(selfRegFrag); - - // Modal window for password reset request - final ModalWindow pwdResetReqModalWin = new ModalWindow("pwdResetReqModal"); - pwdResetReqModalWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY); - pwdResetReqModalWin.setInitialHeight(PWD_RESET_WIN_HEIGHT); - pwdResetReqModalWin.setInitialWidth(PWD_RESET_WIN_WIDTH); - pwdResetReqModalWin.setCookieName("pwd-reset-req-modal"); - add(pwdResetReqModalWin); - - Fragment pwdResetFrag; - if (userSelfRestClient.isPasswordResetAllowed()) { - pwdResetFrag = new Fragment("passwordReset", "pwdResetAllowed", this); - - final AjaxLink<Void> pwdResetLink = new ClearIndicatingAjaxLink<Void>("link", getPageReference()) { - - private static final long serialVersionUID = -6957616042924610290L; - - @Override - protected void onClickInternal(final AjaxRequestTarget target) { - pwdResetReqModalWin.setPageCreator(new ModalWindow.PageCreator() { - - private static final long serialVersionUID = -7834632442532690940L; - - @Override - public Page createPage() { - // anonymous authentication needed for password reset request - authenticate(anonymousUser, anonymousKey); - - return new RequestPasswordResetModalPage(pwdResetReqModalWin); - } - }); - - pwdResetReqModalWin.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { - - private static final long serialVersionUID = 8804221891699487139L; - - @Override - public void onClose(final AjaxRequestTarget target) { - SyncopeSession.get().invalidate(); - setResponsePage(Login.class); - } - }); - - pwdResetReqModalWin.show(target); - } - }; - pwdResetLink.add(new Label("linkTitle", getString("passwordReset"))); - - Panel panel = new LinkPanel("passwordReset", new ResourceModel("passwordReset")); - panel.add(pwdResetLink); - pwdResetFrag.add(panel); - } else { - pwdResetFrag = new Fragment("passwordReset", "pwdResetNotAllowed", this); - } - add(pwdResetFrag); - - // Modal window for password reset confirm - automatically shown when token is available as request parameter - final String pwdResetToken = RequestCycle.get().getRequest().getRequestParameters(). - getParameterValue(Constants.PARAM_PASSWORD_RESET_TOKEN).toOptionalString(); - final ModalWindow pwdResetConfModalWin = new ModalWindow("pwdResetConfModal"); - if (StringUtils.isNotBlank(pwdResetToken)) { - pwdResetConfModalWin.add(new AbstractDefaultAjaxBehavior() { - - private static final long serialVersionUID = 3109256773218160485L; - - @Override - protected void respond(final AjaxRequestTarget target) { - ModalWindow window = (ModalWindow) getComponent(); - window.show(target); - } - - @Override - public void renderHead(final Component component, final IHeaderResponse response) { - response.render(JavaScriptHeaderItem.forScript(getCallbackScript(), null)); - } - }); - } - pwdResetConfModalWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY); - pwdResetConfModalWin.setInitialHeight(PWD_RESET_WIN_HEIGHT); - pwdResetConfModalWin.setInitialWidth(PWD_RESET_WIN_WIDTH); - pwdResetConfModalWin.setCookieName("pwd-reset-conf-modal"); - pwdResetConfModalWin.setPageCreator(new ModalWindow.PageCreator() { - - private static final long serialVersionUID = -7834632442532690940L; - - @Override - public Page createPage() { - // anonymous authentication needed for password reset confirm - authenticate(anonymousUser, anonymousKey); - - return new ConfirmPasswordResetModalPage(pwdResetConfModalWin, pwdResetToken); - } - }); - pwdResetConfModalWin.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { - - private static final long serialVersionUID = 8804221891699487139L; - - @Override - public void onClose(final AjaxRequestTarget target) { - SyncopeSession.get().invalidate(); - setResponsePage(Login.class); - } - }); - add(pwdResetConfModalWin); - } - - private void authenticate(final String username, final String password) { - List<EntitlementTO> entitlements = SyncopeSession.get(). - getService(EntitlementService.class, username, password).getOwnEntitlements(); - - SyncopeSession.get().setUsername(username); - SyncopeSession.get().setPassword(password); - SyncopeSession.get().setEntitlements(CollectionWrapper.unwrap(entitlements).toArray(new String[0])); - SyncopeSession.get().setVersion(version); - } - - /** - * Inner class which implements (custom) Locale DropDownChoice component. - */ - private class LocaleDropDown extends DropDownChoice<Locale> { - - private static final long serialVersionUID = 2349382679992357202L; - - private class LocaleRenderer extends ChoiceRenderer<Locale> { - - private static final long serialVersionUID = -3657529581555164741L; - - @Override - public String getDisplayValue(final Locale locale) { - return locale.getDisplayName(getLocale()); - } - } - - public LocaleDropDown(final String id) { - super(id, SyncopeSession.SUPPORTED_LOCALES); - - setChoiceRenderer(new LocaleRenderer()); - setModel(new IModel<Locale>() { - - private static final long serialVersionUID = -6985170095629312963L; - - @Override - public Locale getObject() { - return getSession().getLocale(); - } - - @Override - public void setObject(final Locale object) { - getSession().setLocale(object); - } - - @Override - public void detach() { - // Empty. - } - }); - - // set default value to English - getModel().setObject(Locale.ENGLISH); - } - - @Override - protected boolean wantOnSelectionChangedNotifications() { - return true; - } - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/Logout.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Logout.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Logout.java deleted file mode 100644 index acf313b..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Logout.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import org.apache.syncope.client.console.SyncopeSession; -import org.apache.wicket.request.mapper.parameter.PageParameters; - -/** - * Syncope Logout. - */ -public class Logout extends BasePage { - - private static final long serialVersionUID = -2143007520243939450L; - - public Logout(final PageParameters parameters) { - super(parameters); - - SyncopeSession.get().invalidate(); - - setResponsePage(getApplication().getHomePage()); - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/MembershipModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/MembershipModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/MembershipModalPage.java deleted file mode 100644 index f2e2189..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/MembershipModalPage.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import org.apache.syncope.client.console.commons.Mode; -import org.apache.syncope.client.console.panels.AnnotatedBeanPanel; -import org.apache.syncope.client.console.panels.DerAttrsPanel; -import org.apache.syncope.client.console.panels.PlainAttrsPanel; -import org.apache.syncope.client.console.panels.VirAttrsPanel; -import org.apache.syncope.common.lib.to.MembershipTO; -import org.apache.syncope.common.lib.to.UserTO; -import org.apache.wicket.PageReference; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.markup.html.form.AjaxButton; -import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.model.CompoundPropertyModel; -import org.apache.wicket.model.ResourceModel; - -public class MembershipModalPage extends BaseModalPage { - - private static final long serialVersionUID = -4360802478081432549L; - - private final AjaxButton submit; - - public MembershipModalPage(final PageReference pageRef, final ModalWindow window, final MembershipTO membershipTO, - final Mode mode) { - - final Form<MembershipTO> form = new Form<MembershipTO>("MembershipForm"); - - final UserTO userTO = ((UserModalPage) pageRef.getPage()).getUserTO(); - - form.setModel(new CompoundPropertyModel<MembershipTO>(membershipTO)); - - submit = new AjaxButton(SUBMIT, new ResourceModel(SUBMIT)) { - - private static final long serialVersionUID = -958724007591692537L; - - @Override - protected void onSubmit(final AjaxRequestTarget target, final Form form) { - userTO.getMemberships().remove(membershipTO); - userTO.getMemberships().add(membershipTO); - - ((UserModalPage) pageRef.getPage()).setUserTO(userTO); - - window.close(target); - } - - @Override - protected void onError(final AjaxRequestTarget target, final Form<?> form) { - feedbackPanel.refresh(target); - } - }; - - form.add(submit); - form.setDefaultButton(submit); - - final IndicatingAjaxButton cancel = new IndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL)) { - - private static final long serialVersionUID = -958724007591692537L; - - @Override - protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { - ((UserModalPage) pageRef.getPage()).setUserTO(userTO); - window.close(target); - } - - @Override - protected void onError(final AjaxRequestTarget target, final Form<?> form) { - } - }; - - cancel.setDefaultFormProcessing(false); - form.add(cancel); - - //-------------------------------- - // Attributes panel - //-------------------------------- - form.add(new PlainAttrsPanel("plainAttrs", membershipTO, form, mode)); - form.add(new AnnotatedBeanPanel("systeminformation", membershipTO)); - //-------------------------------- - - //-------------------------------- - // Derived attributes container - //-------------------------------- - form.add(new DerAttrsPanel("derAttrs", membershipTO)); - //-------------------------------- - - //-------------------------------- - // Virtual attributes container - //-------------------------------- - form.add(new VirAttrsPanel("virAttrs", membershipTO, mode == Mode.TEMPLATE)); - //-------------------------------- - - add(form); - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationModalPage.java deleted file mode 100644 index 98d8862..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationModalPage.java +++ /dev/null @@ -1,441 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.EnumSet; -import java.util.List; -import org.apache.syncope.client.console.commons.Constants; -import org.apache.syncope.client.console.panels.LoggerCategoryPanel; -import org.apache.syncope.client.console.panels.GroupSearchPanel; -import org.apache.syncope.client.console.panels.UserSearchPanel; -import org.apache.syncope.client.console.rest.LoggerRestClient; -import org.apache.syncope.client.console.rest.NotificationRestClient; -import org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPanel; -import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel; -import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel; -import org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel; -import org.apache.syncope.common.lib.SyncopeClientException; -import org.apache.syncope.common.lib.to.NotificationTO; -import org.apache.syncope.common.lib.types.AttributableType; -import org.apache.syncope.common.lib.types.IntMappingType; -import org.apache.syncope.common.lib.types.TraceLevel; -import org.apache.wicket.PageReference; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; -import org.apache.wicket.ajax.markup.html.form.AjaxButton; -import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy; -import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.model.CompoundPropertyModel; -import org.apache.wicket.model.Model; -import org.apache.wicket.model.PropertyModel; -import org.apache.wicket.model.ResourceModel; -import org.apache.wicket.spring.injection.annot.SpringBean; -import org.apache.wicket.validation.validator.EmailAddressValidator; - -class NotificationModalPage extends BaseModalPage { - - private static final long serialVersionUID = -1975312550059578553L; - - @SpringBean - private NotificationRestClient restClient; - - @SpringBean - private LoggerRestClient loggerRestClient; - - public NotificationModalPage(final PageReference pageRef, final ModalWindow window, - final NotificationTO notificationTO, final boolean createFlag) { - - final Form<NotificationTO> form = - new Form<NotificationTO>(FORM, new CompoundPropertyModel<NotificationTO>(notificationTO)); - - final AjaxTextFieldPanel sender = new AjaxTextFieldPanel("sender", getString("sender"), - new PropertyModel<String>(notificationTO, "sender")); - sender.addRequiredLabel(); - sender.addValidator(EmailAddressValidator.getInstance()); - form.add(sender); - - final AjaxTextFieldPanel subject = new AjaxTextFieldPanel("subject", getString("subject"), - new PropertyModel<String>(notificationTO, "subject")); - subject.addRequiredLabel(); - form.add(subject); - - final AjaxDropDownChoicePanel<String> template = new AjaxDropDownChoicePanel<String>( - "template", getString("template"), - new PropertyModel<String>(notificationTO, "template")); - template.setChoices(confRestClient.getMailTemplates()); - template.addRequiredLabel(); - form.add(template); - - final AjaxDropDownChoicePanel<TraceLevel> traceLevel = new AjaxDropDownChoicePanel<TraceLevel>( - "traceLevel", getString("traceLevel"), - new PropertyModel<TraceLevel>(notificationTO, "traceLevel")); - traceLevel.setChoices(Arrays.asList(TraceLevel.values())); - traceLevel.addRequiredLabel(); - form.add(traceLevel); - - final AjaxCheckBoxPanel isActive = new AjaxCheckBoxPanel("isActive", - getString("isActive"), new PropertyModel<Boolean>(notificationTO, "active")); - if (createFlag) { - isActive.getField().setDefaultModelObject(Boolean.TRUE); - } - form.add(isActive); - - final WebMarkupContainer aboutContainer = new WebMarkupContainer("aboutContainer"); - aboutContainer.setOutputMarkupId(true); - - form.add(aboutContainer); - - final AjaxCheckBoxPanel checkAbout = new AjaxCheckBoxPanel("checkAbout", "checkAbout", new Model<Boolean>( - notificationTO.getUserAbout() == null && notificationTO.getGroupAbout() == null)); - aboutContainer.add(checkAbout); - - final AjaxCheckBoxPanel checkUserAbout = new AjaxCheckBoxPanel("checkUserAbout", "checkUserAbout", - new Model<Boolean>(notificationTO.getUserAbout() != null)); - aboutContainer.add(checkUserAbout); - - final AjaxCheckBoxPanel checkGroupAbout = new AjaxCheckBoxPanel("checkGroupAbout", "checkGroupAbout", - new Model<Boolean>(notificationTO.getGroupAbout() != null)); - aboutContainer.add(checkGroupAbout); - - final UserSearchPanel userAbout = - new UserSearchPanel.Builder("userAbout").fiql(notificationTO.getUserAbout()).build(); - aboutContainer.add(userAbout); - userAbout.setEnabled(checkUserAbout.getModelObject()); - - final GroupSearchPanel groupAbout = - new GroupSearchPanel.Builder("groupAbout").fiql(notificationTO.getGroupAbout()).build(); - aboutContainer.add(groupAbout); - groupAbout.setEnabled(checkGroupAbout.getModelObject()); - - checkAbout.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { - - private static final long serialVersionUID = -1107858522700306810L; - - @Override - protected void onUpdate(final AjaxRequestTarget target) { - if (checkAbout.getModelObject()) { - checkUserAbout.setModelObject(Boolean.FALSE); - checkGroupAbout.setModelObject(Boolean.FALSE); - userAbout.setEnabled(Boolean.FALSE); - groupAbout.setEnabled(Boolean.FALSE); - } else { - checkAbout.setModelObject(Boolean.TRUE); - } - target.add(aboutContainer); - } - }); - - checkUserAbout.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { - - private static final long serialVersionUID = -1107858522700306810L; - - @Override - protected void onUpdate(final AjaxRequestTarget target) { - if (checkUserAbout.getModelObject()) { - checkAbout.setModelObject(!checkUserAbout.getModelObject()); - checkGroupAbout.setModelObject(!checkUserAbout.getModelObject()); - groupAbout.setEnabled(Boolean.FALSE); - } else { - checkUserAbout.setModelObject(Boolean.TRUE); - } - userAbout.setEnabled(Boolean.TRUE); - target.add(aboutContainer); - } - }); - - checkGroupAbout.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { - - private static final long serialVersionUID = -1107858522700306810L; - - @Override - protected void onUpdate(final AjaxRequestTarget target) { - if (checkGroupAbout.getModelObject()) { - checkAbout.setModelObject(Boolean.FALSE); - checkUserAbout.setModelObject(Boolean.FALSE); - userAbout.setEnabled(Boolean.FALSE); - } else { - checkGroupAbout.setModelObject(Boolean.TRUE); - } - groupAbout.setEnabled(Boolean.TRUE); - target.add(aboutContainer); - } - }); - - final AjaxDropDownChoicePanel<IntMappingType> recipientAttrType = new AjaxDropDownChoicePanel<IntMappingType>( - "recipientAttrType", new ResourceModel("recipientAttrType", "recipientAttrType").getObject(), - new PropertyModel<IntMappingType>(notificationTO, "recipientAttrType")); - recipientAttrType.setChoices(new ArrayList<IntMappingType>( - IntMappingType.getAttributeTypes(AttributableType.USER, - EnumSet.of(IntMappingType.UserId, IntMappingType.Password)))); - recipientAttrType.addRequiredLabel(); - form.add(recipientAttrType); - - final AjaxDropDownChoicePanel<String> recipientAttrName = new AjaxDropDownChoicePanel<String>( - "recipientAttrName", new ResourceModel("recipientAttrName", "recipientAttrName").getObject(), - new PropertyModel<String>(notificationTO, "recipientAttrName")); - recipientAttrName.setChoices(getSchemaNames(recipientAttrType.getModelObject())); - recipientAttrName.addRequiredLabel(); - form.add(recipientAttrName); - - recipientAttrType.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { - - private static final long serialVersionUID = -1107858522700306810L; - - @Override - protected void onUpdate(final AjaxRequestTarget target) { - recipientAttrName.setChoices(getSchemaNames(recipientAttrType.getModelObject())); - target.add(recipientAttrName); - } - }); - - form.add(new LoggerCategoryPanel( - "eventSelection", - loggerRestClient.listEvents(), - new PropertyModel<List<String>>(notificationTO, "events"), - getPageReference(), - "Notification") { - - private static final long serialVersionUID = 6429053774964787735L; - - @Override - protected String[] getListRoles() { - return new String[] {}; - } - - @Override - protected String[] getChangeRoles() { - return new String[] {}; - } - }); - - final WebMarkupContainer recipientsContainer = new WebMarkupContainer("recipientsContainer"); - recipientsContainer.setOutputMarkupId(true); - - form.add(recipientsContainer); - - final AjaxCheckBoxPanel checkStaticRecipients = new AjaxCheckBoxPanel("checkStaticRecipients", - "recipients", new Model<Boolean>(!notificationTO.getStaticRecipients().isEmpty())); - form.add(checkStaticRecipients); - - if (createFlag) { - checkStaticRecipients.getField().setDefaultModelObject(Boolean.FALSE); - } - - final AjaxTextFieldPanel staticRecipientsFieldPanel = - new AjaxTextFieldPanel("panel", "staticRecipients", new Model<String>(null)); - staticRecipientsFieldPanel.addValidator(EmailAddressValidator.getInstance()); - staticRecipientsFieldPanel.setRequired(checkStaticRecipients.getModelObject()); - - if (notificationTO.getStaticRecipients().isEmpty()) { - notificationTO.getStaticRecipients().add(null); - } - - final MultiFieldPanel<String> staticRecipients = new MultiFieldPanel<String>("staticRecipients", - new PropertyModel<List<String>>(notificationTO, "staticRecipients"), staticRecipientsFieldPanel); - staticRecipients.setEnabled(checkStaticRecipients.getModelObject()); - form.add(staticRecipients); - - final AjaxCheckBoxPanel checkRecipients = - new AjaxCheckBoxPanel("checkRecipients", "checkRecipients", - new Model<Boolean>(notificationTO.getRecipients() == null ? false : true)); - recipientsContainer.add(checkRecipients); - - if (createFlag) { - checkRecipients.getField().setDefaultModelObject(Boolean.TRUE); - } - - final UserSearchPanel recipients = - new UserSearchPanel.Builder("recipients").fiql(notificationTO.getRecipients()).build(); - - recipients.setEnabled(checkRecipients.getModelObject()); - recipientsContainer.add(recipients); - - final AjaxCheckBoxPanel selfAsRecipient = new AjaxCheckBoxPanel("selfAsRecipient", - getString("selfAsRecipient"), new PropertyModel<Boolean>(notificationTO, "selfAsRecipient")); - form.add(selfAsRecipient); - - if (createFlag) { - selfAsRecipient.getField().setDefaultModelObject(Boolean.FALSE); - } - - selfAsRecipient.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { - - private static final long serialVersionUID = -1107858522700306810L; - - @Override - protected void onUpdate(final AjaxRequestTarget target) { - if (!selfAsRecipient.getModelObject() - && !checkRecipients.getModelObject() - && !checkStaticRecipients.getModelObject()) { - - checkRecipients.getField().setDefaultModelObject(Boolean.TRUE); - target.add(checkRecipients); - recipients.setEnabled(checkRecipients.getModelObject()); - target.add(recipients); - target.add(recipientsContainer); - } - } - }); - - checkRecipients.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { - - private static final long serialVersionUID = -1107858522700306810L; - - @Override - protected void onUpdate(final AjaxRequestTarget target) { - if (!checkRecipients.getModelObject() - && !selfAsRecipient.getModelObject() - && !checkStaticRecipients.getModelObject()) { - - checkStaticRecipients.getField().setDefaultModelObject(Boolean.TRUE); - target.add(checkStaticRecipients); - staticRecipients.setEnabled(Boolean.TRUE); - target.add(staticRecipients); - staticRecipientsFieldPanel.setRequired(Boolean.TRUE); - target.add(staticRecipientsFieldPanel); - } - recipients.setEnabled(checkRecipients.getModelObject()); - target.add(recipients); - target.add(recipientsContainer); - } - }); - - checkStaticRecipients.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { - - private static final long serialVersionUID = -1107858522700306810L; - - @Override - protected void onUpdate(final AjaxRequestTarget target) { - if (!checkStaticRecipients.getModelObject() - && !selfAsRecipient.getModelObject() - && !checkRecipients.getModelObject()) { - checkRecipients.getField().setDefaultModelObject(Boolean.TRUE); - checkRecipients.setEnabled(Boolean.TRUE); - target.add(checkRecipients); - } - staticRecipients.setEnabled(checkStaticRecipients.getModelObject()); - staticRecipientsFieldPanel.setRequired(checkStaticRecipients.getModelObject()); - recipients.setEnabled(checkRecipients.getModelObject()); - target.add(staticRecipientsFieldPanel); - target.add(staticRecipients); - target.add(recipients); - target.add(recipientsContainer); - } - }); - - AjaxButton submit = new IndicatingAjaxButton(APPLY, new Model<String>(getString(SUBMIT))) { - - private static final long serialVersionUID = -958724007591692537L; - - @Override - protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { - notificationTO.setUserAbout( - !checkAbout.getModelObject() && checkUserAbout.getModelObject() ? userAbout.buildFIQL() : null); - notificationTO.setGroupAbout( - !checkAbout.getModelObject() - && checkGroupAbout.getModelObject() ? groupAbout.buildFIQL() : null); - notificationTO.setRecipients(checkRecipients.getModelObject() ? recipients.buildFIQL() : null); - notificationTO.getStaticRecipients().removeAll(Collections.singleton(null)); - - try { - if (createFlag) { - restClient.create(notificationTO); - } else { - restClient.update(notificationTO); - } - info(getString(Constants.OPERATION_SUCCEEDED)); - - Configuration callerPage = (Configuration) pageRef.getPage(); - callerPage.setModalResult(true); - - window.close(target); - } catch (SyncopeClientException scee) { - error(getString(Constants.ERROR) + ": " + scee.getMessage()); - feedbackPanel.refresh(target); - } - } - - @Override - protected void onError(final AjaxRequestTarget target, final Form<?> form) { - feedbackPanel.refresh(target); - } - }; - - final AjaxButton cancel = new IndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL)) { - - private static final long serialVersionUID = -958724007591692537L; - - @Override - protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { - window.close(target); - } - }; - - cancel.setDefaultFormProcessing(false); - - String allowedRoles = createFlag - ? xmlRolesReader.getEntitlement("Notification", "create") - : xmlRolesReader.getEntitlement("Notification", "update"); - MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, allowedRoles); - - form.add(submit); - form.setDefaultButton(submit); - - form.add(cancel); - - add(form); - } - - private List<String> getSchemaNames(final IntMappingType type) { - final List<String> result; - - if (type == null) { - result = Collections.<String>emptyList(); - } else { - switch (type) { - case UserPlainSchema: - result = schemaRestClient.getPlainSchemaNames(AttributableType.USER); - break; - - case UserDerivedSchema: - result = schemaRestClient.getDerSchemaNames(AttributableType.USER); - break; - - case UserVirtualSchema: - result = schemaRestClient.getVirSchemaNames(AttributableType.USER); - break; - - case Username: - result = Collections.singletonList("Username"); - break; - - default: - result = Collections.<String>emptyList(); - } - } - - return result; - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationTaskModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationTaskModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationTaskModalPage.java deleted file mode 100644 index 70f63d6..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationTaskModalPage.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.syncope.client.console.pages; - -import java.util.ArrayList; -import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel; -import org.apache.syncope.common.lib.to.AbstractTaskTO; -import org.apache.syncope.common.lib.to.NotificationTaskTO; -import org.apache.wicket.markup.html.form.ListMultipleChoice; -import org.apache.wicket.markup.html.form.TextArea; -import org.apache.wicket.model.PropertyModel; - -public class NotificationTaskModalPage extends TaskModalPage { - - private static final long serialVersionUID = -4399606755452034216L; - - public NotificationTaskModalPage(final AbstractTaskTO taskTO) { - super(taskTO); - - final AjaxTextFieldPanel sender = new AjaxTextFieldPanel("sender", getString("sender"), - new PropertyModel<String>(taskTO, "sender")); - sender.setEnabled(false); - profile.add(sender); - - if (taskTO instanceof NotificationTaskTO) { - final ListMultipleChoice<String> recipients = new ListMultipleChoice<>("recipients", - new ArrayList<>(((NotificationTaskTO) taskTO).getRecipients())); - recipients.setMaxRows(5); - recipients.setEnabled(false); - profile.add(recipients); - } - - final AjaxTextFieldPanel subject = new AjaxTextFieldPanel("subject", getString("subject"), - new PropertyModel<String>(taskTO, "subject")); - subject.setEnabled(false); - profile.add(subject); - - final TextArea<String> textBody = new TextArea<String>("textBody", - new PropertyModel<String>(taskTO, "textBody")); - textBody.setEnabled(false); - profile.add(textBody); - - final TextArea<String> htmlBody = new TextArea<String>("htmlBody", - new PropertyModel<String>(taskTO, "htmlBody")); - htmlBody.setEnabled(false); - profile.add(htmlBody); - - final AjaxTextFieldPanel traceLevel = new AjaxTextFieldPanel("traceLevel", getString("traceLevel"), - new PropertyModel<String>(taskTO, "traceLevel")); - traceLevel.setEnabled(false); - profile.add(traceLevel); - } -}
