From 3fbfc4b310f375cbbf2fb537b0179620b338db58 Mon Sep 17 00:00:00 2001
From: Andreas Svanberg <andreass@dsv.su.se>
Date: Tue, 4 Mar 2025 11:25:38 +0100
Subject: [PATCH] Add extra buttons to make it easier to create multiple groups
 and overall reduce the number of clicks

---
 .../su/dsv/scipro/group/EditGroupPanel.html   |  3 +++
 .../su/dsv/scipro/group/EditGroupPanel.java   | 21 +++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.html b/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.html
index 818891f62d..e0db52aaa7 100644
--- a/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.html
+++ b/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.html
@@ -42,6 +42,9 @@
                 </div>
             </fieldset>
             <button type="submit" class="btn btn-success">Save</button>
+            <button type="submit" wicket:id="save_and_close" class="btn btn-success">Save and close</button>
+            <button type="submit" wicket:id="save_and_create" class="btn btn-success">Save and create another</button>
+            <a wicket:id="cancel" class="btn btn-outline-secondary">Cancel</a>
         </form>
     </div>
 </wicket:panel>
diff --git a/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.java b/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.java
index 44929b3368..831986ffad 100644
--- a/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.java
+++ b/view/src/main/java/se/su/dsv/scipro/group/EditGroupPanel.java
@@ -5,6 +5,7 @@ import java.util.*;
 import org.apache.wicket.extensions.model.AbstractCheckBoxModel;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.*;
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.FeedbackPanel;
@@ -19,6 +20,8 @@ import se.su.dsv.scipro.project.ProjectService;
 import se.su.dsv.scipro.project.ProjectStatus;
 import se.su.dsv.scipro.project.ProjectTeamMemberRoles;
 import se.su.dsv.scipro.session.SciProSession;
+import se.su.dsv.scipro.supervisor.pages.SupervisorEditGroupPage;
+import se.su.dsv.scipro.supervisor.pages.SupervisorMyGroupsPage;
 import se.su.dsv.scipro.system.User;
 
 public class EditGroupPanel extends Panel {
@@ -82,6 +85,24 @@ public class EditGroupPanel extends Panel {
             add(
                 new CheckBox("active", LambdaModel.of(model, Group::isActive, Group::setActive)).setOutputMarkupId(true)
             );
+
+            add(
+                new SubmitLink("save_and_close") {
+                    @Override
+                    public void onAfterSubmit() {
+                        setResponsePage(SupervisorMyGroupsPage.class);
+                    }
+                }
+            );
+            add(
+                new SubmitLink("save_and_create") {
+                    @Override
+                    public void onAfterSubmit() {
+                        setResponsePage(SupervisorEditGroupPage.class);
+                    }
+                }
+            );
+            add(new BookmarkablePageLink<>("cancel", SupervisorMyGroupsPage.class));
         }
 
         @Override