ChangeScreen2: add Gerrit config and user preference

Now gerrit.changeScreen can be set in gerrit.config to select which
UI is presented: OLD_UI for the legacy view, and CHANGE_SCREEN2 for
the new UI. The current default is OLD_UI but this is expected to
change in the future before the old UI is deleted.

A per user preference can be used to switch the screen.

Started-by: David Ostrovsky <david@ostrovsky.org>
Change-Id: I340efe7ff264a534cb9a83609bbc63621e2b60c1
This commit is contained in:
Shawn Pearce
2013-09-24 12:13:50 -07:00
parent 0672a19c54
commit 6d731f5c6d
31 changed files with 162 additions and 58 deletions

View File

@@ -77,6 +77,11 @@ public final class AccountGeneralPreferences {
UNIFIED_DIFF
}
public static enum ChangeScreen {
OLD_UI,
CHANGE_SCREEN2
}
public static enum TimeFormat {
/** 12-hour clock: 1:15 am, 2:13 pm */
HHMM_12("h:mm a"),
@@ -144,6 +149,9 @@ public final class AccountGeneralPreferences {
@Column(id = 14, length = 20, notNull = false)
protected String diffView;
@Column(id = 15, length = 20, notNull = false)
protected String changeScreen;
public AccountGeneralPreferences() {
}
@@ -278,6 +286,14 @@ public final class AccountGeneralPreferences {
this.diffView = diffView.name();
}
public ChangeScreen getChangeScreen() {
return changeScreen != null ? ChangeScreen.valueOf(changeScreen) : null;
}
public void setChangeScreen(ChangeScreen ui) {
changeScreen = ui != null ? ui.name() : null;
}
public void resetToDefaults() {
maximumPageSize = DEFAULT_PAGESIZE;
showSiteHeader = true;
@@ -292,5 +308,6 @@ public final class AccountGeneralPreferences {
relativeDateInChangeTable = false;
commentVisibilityStrategy = null;
diffView = null;
changeScreen = null;
}
}