diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressPanel.html index 2ef3036db5c..bc1e735c222 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressPanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressPanel.html @@ -47,6 +47,7 @@
+
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressPanel.java index fb1c16463a9..8b69ab44f8e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressPanel.java @@ -21,10 +21,12 @@ import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.web.component.AjaxSubmitButton; import com.evolveum.midpoint.web.component.form.Form; +import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails; import com.evolveum.midpoint.web.page.admin.server.dto.OperationResultStatusIcon; import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationResultStatusType; import org.apache.wicket.AttributeModifier; +import org.apache.wicket.Page; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; @@ -221,8 +223,30 @@ protected void onError(AjaxRequestTarget target, target.add(page.getFeedbackPanel()); } }; - progressReporter.registerAbortButton(abortButton); - progressForm.add(abortButton); + + progressReporter.registerAbortButton(abortButton); + progressForm.add(abortButton); + + AjaxSubmitButton backButton = new AjaxSubmitButton("back", + createStringResource("pageAdminFocus.button.back")) { + + @Override + protected void onSubmit(AjaxRequestTarget target, + org.apache.wicket.markup.html.form.Form form) { + Page page = getPage(); + if (page != null && page instanceof PageAdminObjectDetails){ + setResponsePage(((PageAdminObjectDetails) page).getDefaultBackPage()); + } + } + + @Override + protected void onError(AjaxRequestTarget target, + org.apache.wicket.markup.html.form.Form form) { + target.add(page.getFeedbackPanel()); + } + }; + progressReporter.registerBackButton(backButton); + progressForm.add(backButton); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressReporter.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressReporter.java index cdc99649898..c0c37f8b204 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressReporter.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/progress/ProgressReporter.java @@ -68,6 +68,7 @@ public class ProgressReporter implements Serializable { // links to wicket artefacts on parent page private AjaxSubmitButton abortButton; + private AjaxSubmitButton backButton; private ProgressReportingAwarePage parentPage; private ProgressPanel progressPanel; private Behavior refreshingBehavior = null; // behavior is attached to the progress panel @@ -191,6 +192,7 @@ public void run() { if (abortEnabled) { showAbortButton(target); } + showBackButton(target); result.recordInProgress(); // to disable showing not-final results (why does it work? and why is the result shown otherwise?) @@ -244,6 +246,13 @@ public void registerAbortButton(AjaxSubmitButton abortButton) { this.abortButton = abortButton; } + public void registerBackButton(AjaxSubmitButton backButton) { + backButton.setOutputMarkupId(true); + backButton.setOutputMarkupPlaceholderTag(true); + backButton.setVisible(false); + this.backButton = backButton; + } + /** * You have to call this method when Abort button is pressed */ @@ -266,7 +275,7 @@ public void onAbortSubmit(AjaxRequestTarget target) { hideAbortButton(target); } - private void hideAbortButton(AjaxRequestTarget target) { + public void hideAbortButton(AjaxRequestTarget target) { abortButton.setVisible(false); target.add(abortButton); } @@ -276,6 +285,11 @@ public void showAbortButton(AjaxRequestTarget target) { target.add(abortButton); } + public void showBackButton(AjaxRequestTarget target) { + backButton.setVisible(true); + target.add(backButton); + } + // ================= Other methods ================= diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminFocus.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminFocus.java index 4250ebac3a1..f4fecf50291 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminFocus.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminFocus.java @@ -203,7 +203,9 @@ public void finishProcessing(AjaxRequestTarget target, OperationResult result) { } goBackPage(); } else { - showResult(result); + getProgressReporter().showBackButton(target); + getProgressReporter().hideAbortButton(target); + showResult(result); target.add(getFeedbackPanel()); // if we only stayed on the page because of displaying results, hide diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminObjectDetails.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminObjectDetails.java index 305c14ac0a3..fdf95e0a42f 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminObjectDetails.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminObjectDetails.java @@ -637,7 +637,7 @@ public void goBackPage() { } } - protected abstract PageBase getDefaultBackPage(); + public abstract PageBase getDefaultBackPage(); public List getObjectFormTypes() { Task task = createSimpleTask(OPERATION_LOAD_GUI_CONFIGURATION); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRole.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRole.java index 35ef0dc37f0..04dfb8bc38d 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRole.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRole.java @@ -196,7 +196,7 @@ protected AbstractObjectMainPanel createMainPanel(String id) { } @Override - protected PageBase getDefaultBackPage() { + public PageBase getDefaultBackPage() { return new PageRoles(false, ""); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageOrgUnit.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageOrgUnit.java index 57c699aab37..abfd877ee36 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageOrgUnit.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageOrgUnit.java @@ -165,7 +165,7 @@ protected AbstractObjectMainPanel createMainPanel(String id) { } @Override - protected PageBase getDefaultBackPage() { + public PageBase getDefaultBackPage() { return new PageOrgTree(); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUser.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUser.java index 1bf38b9a7d4..e78f79a6017 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUser.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUser.java @@ -129,7 +129,7 @@ protected AbstractObjectMainPanel createMainPanel(String id) { } @Override - protected PageBase getDefaultBackPage() { + public PageBase getDefaultBackPage() { return new PageUsers(); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageSelfProfile.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageSelfProfile.java index d4720e7638e..284a06ff57e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageSelfProfile.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageSelfProfile.java @@ -54,7 +54,7 @@ protected String getObjectOidParameter() { } @Override - protected PageBase getDefaultBackPage() { + public PageBase getDefaultBackPage() { return new PageSelfProfile(); } // diff --git a/gui/admin-gui/src/test/java/com/evolveum/midpoint/web/PageLoginTest.java b/gui/admin-gui/src/test/java/com/evolveum/midpoint/web/PageLoginTest.java new file mode 100644 index 00000000000..e0806c4d2fc --- /dev/null +++ b/gui/admin-gui/src/test/java/com/evolveum/midpoint/web/PageLoginTest.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2010-2016 Evolveum + * + * Licensed 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 com.evolveum.midpoint.web; + +import com.evolveum.midpoint.web.page.admin.users.PageUser; +import com.evolveum.midpoint.web.page.login.PageLogin; +import org.apache.wicket.util.tester.WicketTester; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; +import org.testng.annotations.Test; + +/** + * Created by honchar + */ +@ContextConfiguration(locations = {"classpath:ctx-admin-gui-test-main.xml"}) +@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) +public class PageLoginTest extends AbstractInitializedGuiIntegrationTest { + + @Test + public void test001BasicRender() { + WicketTester tester = new WicketTester(); + PageLogin page = tester.startPage(PageLogin.class); + tester.assertRenderedPage(PageUser.class); + } + + + +} diff --git a/gui/admin-gui/src/test/resources/ctx-admin-gui-test-main.xml b/gui/admin-gui/src/test/resources/ctx-admin-gui-test-main.xml index 5743e9504df..c255b2ff20b 100644 --- a/gui/admin-gui/src/test/resources/ctx-admin-gui-test-main.xml +++ b/gui/admin-gui/src/test/resources/ctx-admin-gui-test-main.xml @@ -39,7 +39,7 @@ - - - + + + \ No newline at end of file diff --git a/samples/resources/csvfile/midpoint-flatfile.csv b/samples/resources/csvfile/midpoint-flatfile.csv index 5cac4cded74..1b7d0d16346 100644 --- a/samples/resources/csvfile/midpoint-flatfile.csv +++ b/samples/resources/csvfile/midpoint-flatfile.csv @@ -1,3 +1,7 @@ "id","firstname","lastname","disabled","password" "user01","Firstname","Lastname","false","secret" "user02","Test","Lastname","false","secret" +"nnnnn","fffff","lllll","false","password" +"AAAA_DEL_PROJ11","AAAA_DEL_PROJ","last","false","password" +"maxeassign11","maxeassign1","maxeassign1","false","maxeassign1" +"AAA_del_proj_user","AAA_del_proj_user","AAA_del_proj_user","false","AAA_del_proj_user"