Remember the last Project Screen used

Remember the last project screen used every time a project
screen is loaded.  Go to the remembered screen when selecting
a new project from the project list instead of always going
to the project info screen.  This makes navigating between
projects much more pleasant (fewer clicks), especially when
comparing access rights or dashboards.

Change-Id: I5ec4025b42c68028a8a459b25cbe8ad567ab0049
This commit is contained in:
Martin Fick
2012-12-05 12:02:59 -07:00
parent cab75498ea
commit cde7ecf7a4
7 changed files with 16 additions and 2 deletions

View File

@@ -153,8 +153,12 @@ public class Dispatcher {
return "/admin/groups/uuid-" + uuid.toString() + "," + panel; return "/admin/groups/uuid-" + uuid.toString() + "," + panel;
} }
public static String toProject(Project.NameKey n) {
return toProjectAdmin(n, ProjectScreen.getSavedPanel());
}
public static String toProjectAdmin(Project.NameKey n, String panel) { public static String toProjectAdmin(Project.NameKey n, String panel) {
if (ProjectScreen.INFO.equals(panel)) { if (panel == null || ProjectScreen.INFO.equals(panel)) {
return "/admin/projects/" + n.toString(); return "/admin/projects/" + n.toString();
} }
return "/admin/projects/" + n.toString() + "," + panel; return "/admin/projects/" + n.toString() + "," + panel;

View File

@@ -110,6 +110,7 @@ public class ProjectAccessScreen extends ProjectScreen {
displayReadOnly(access); displayReadOnly(access);
} }
}); });
savedPanel = ACCESS;
} }
private void displayReadOnly(ProjectAccess access) { private void displayReadOnly(ProjectAccess access) {

View File

@@ -86,6 +86,7 @@ public class ProjectBranchesScreen extends ProjectScreen {
} }
} }
}); });
savedPanel = BRANCH;
} }
private void display(final List<Branch> listBranches) { private void display(final List<Branch> listBranches) {

View File

@@ -40,6 +40,7 @@ public class ProjectDashboardsScreen extends ProjectScreen {
dashes.display(result); dashes.display(result);
} }
}); });
savedPanel = DASHBOARDS;
} }
@Override @Override

View File

@@ -99,6 +99,7 @@ public class ProjectInfoScreen extends ProjectScreen {
display(result); display(result);
} }
}); });
savedPanel = INFO;
} }
private void enableForm(final boolean canModifyAgreements, private void enableForm(final boolean canModifyAgreements,

View File

@@ -101,7 +101,7 @@ public class ProjectListScreen extends Screen {
} }
private String link(final ProjectInfo item) { private String link(final ProjectInfo item) {
return Dispatcher.toProjectAdmin(item.name_key(), ProjectScreen.INFO); return Dispatcher.toProject(item.name_key());
} }
@Override @Override

View File

@@ -23,6 +23,12 @@ public abstract class ProjectScreen extends Screen {
public static final String ACCESS = "access"; public static final String ACCESS = "access";
public static final String DASHBOARDS = "dashboards"; public static final String DASHBOARDS = "dashboards";
protected static String savedPanel;
public static String getSavedPanel() {
return savedPanel;
}
private final Project.NameKey name; private final Project.NameKey name;
public ProjectScreen(final Project.NameKey toShow) { public ProjectScreen(final Project.NameKey toShow) {