From 969656cd8f417378d9840a246dca698ff8d16551 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 04 Sep 2014 11:03:36 -0400
Subject: [PATCH] Merge branch 'ticket/141' into develop
---
src/main/java/com/gitblit/wicket/pages/UserPage.java | 62 +++++++++++++++++++++++++-----
1 files changed, 51 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/gitblit/wicket/pages/UserPage.java b/src/main/java/com/gitblit/wicket/pages/UserPage.java
index 4a955c7..e21431d 100644
--- a/src/main/java/com/gitblit/wicket/pages/UserPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/UserPage.java
@@ -35,6 +35,7 @@
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import com.gitblit.Constants.Transport;
import com.gitblit.GitBlitException;
import com.gitblit.Keys;
import com.gitblit.models.Menu.ParameterMenuItem;
@@ -48,6 +49,7 @@
import com.gitblit.wicket.GitBlitWebSession;
import com.gitblit.wicket.GitblitRedirectException;
import com.gitblit.wicket.WicketUtils;
+import com.gitblit.wicket.panels.BooleanOption;
import com.gitblit.wicket.panels.ChoiceOption;
import com.gitblit.wicket.panels.ProjectRepositoryPanel;
import com.gitblit.wicket.panels.SshKeysPanel;
@@ -102,7 +104,7 @@
if (isMyProfile) {
addPreferences(user);
- if (app().gitblit().isServingSSH()) {
+ if (app().services().isServingSSH()) {
// show the SSH key management tab
addSshKeys(user);
} else {
@@ -170,9 +172,11 @@
Form<Void> prefs = new Form<Void>("prefsForm");
List<Language> languages = Arrays.asList(
+ new Language("Deutsch","de"),
new Language("English","en"),
new Language("Español", "es"),
new Language("Français", "fr"),
+ new Language("Italiano", "it"),
new Language("日本語", "ja"),
new Language("한국말", "ko"),
new Language("Nederlands", "nl"),
@@ -181,28 +185,36 @@
new Language("Português", "pt_BR"),
new Language("中文", "zh_CN"));
- String lc = user.getPreferences().locale;
- if (StringUtils.isEmpty(lc)) {
+ Locale locale = user.getPreferences().getLocale();
+ if (locale == null) {
// user has not specified language preference
// try server default preference
- lc = app().settings().getString(Keys.web.forceDefaultLocale, null);
+ String lc = app().settings().getString(Keys.web.forceDefaultLocale, null);
if (StringUtils.isEmpty(lc)) {
// server default language is not configured
// try browser preference
Locale sessionLocale = GitBlitWebSession.get().getLocale();
if (sessionLocale != null) {
- lc = sessionLocale.getLanguage() + "_" + sessionLocale.getCountry();
+ locale = sessionLocale;
}
+ } else {
+
}
}
+
Language preferredLanguage = null;
- if (!StringUtils.isEmpty(lc)) {
+ if (locale != null) {
+ String localeCode = locale.getLanguage();
+ if (!StringUtils.isEmpty(locale.getCountry())) {
+ localeCode += "_" + locale.getCountry();
+ }
+
for (Language language : languages) {
- if (language.code.equals(lc)) {
+ if (language.code.equals(localeCode)) {
// language_COUNTRY match
preferredLanguage = language;
- } else if (preferredLanguage != null && lc.startsWith(language.code)) {
- // language match, but not COUNTRY match
+ } else if (preferredLanguage != null && language.code.startsWith(locale.getLanguage())) {
+ // language match
preferredLanguage = language;
}
}
@@ -211,6 +223,8 @@
final IModel<String> displayName = Model.of(user.getDisplayName());
final IModel<String> emailAddress = Model.of(user.emailAddress == null ? "" : user.emailAddress);
final IModel<Language> language = Model.of(preferredLanguage);
+ final IModel<Boolean> emailMeOnMyTicketChanges = Model.of(user.getPreferences().isEmailMeOnMyTicketChanges());
+ final IModel<Transport> transport = Model.of(user.getPreferences().getTransport());
prefs.add(new TextOption("displayName",
getString("gb.displayName"),
@@ -228,6 +242,29 @@
language,
languages));
+ prefs.add(new BooleanOption("emailMeOnMyTicketChanges",
+ getString("gb.emailMeOnMyTicketChanges"),
+ getString("gb.emailMeOnMyTicketChangesDescription"),
+ emailMeOnMyTicketChanges).setVisible(app().notifier().isSendingMail()));
+
+ List<Transport> availableTransports = new ArrayList<>();
+ if (app().services().isServingSSH()) {
+ availableTransports.add(Transport.SSH);
+ }
+ if (app().services().isServingHTTP()) {
+ availableTransports.add(Transport.HTTPS);
+ availableTransports.add(Transport.HTTP);
+ }
+ if (app().services().isServingGIT()) {
+ availableTransports.add(Transport.GIT);
+ }
+
+ prefs.add(new ChoiceOption<Transport>("transport",
+ getString("gb.transportPreference"),
+ getString("gb.transportPreferenceDescription"),
+ transport,
+ availableTransports));
+
prefs.add(new AjaxButton("save") {
private static final long serialVersionUID = 1L;
@@ -242,8 +279,11 @@
Language lang = language.getObject();
if (lang != null) {
- user.getPreferences().locale = lang.code;
+ user.getPreferences().setLocale(lang.code);
}
+
+ user.getPreferences().setEmailMeOnMyTicketChanges(emailMeOnMyTicketChanges.getObject());
+ user.getPreferences().setTransport(transport.getObject());
try {
app().gitblit().reviseUser(user.username, user);
@@ -266,7 +306,7 @@
private void addSshKeys(final UserModel user) {
Fragment keysTab = new Fragment("sshKeysTab", "sshKeysTabFragment", this);
- keysTab.add(new SshKeysPanel("sshKeysPanel", user, getClass(), getPageParameters()));
+ keysTab.add(new SshKeysPanel("sshKeysPanel", user));
// add the SSH keys tab
add(new Fragment("sshKeysLink", "sshKeysLinkFragment", this).setRenderBodyOnly(true));
--
Gitblit v1.9.1