From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Sat, 30 Apr 2016 04:19:14 -0400
Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates

---
 src/main/java/com/gitblit/wicket/pages/UserPage.java |   41 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 38 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/UserPage.java b/src/main/java/com/gitblit/wicket/pages/UserPage.java
index 9404896..ea68f25 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,16 +172,19 @@
 		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"),
 				new Language("Norsk", "no"),
 				new Language("Język Polski", "pl"),
 				new Language("Português", "pt_BR"),
-				new Language("中文", "zh_CN"));
+				new Language("簡體中文", "zh_CN"),
+				new Language("正體中文", "zh_TW"));
 
 		Locale locale = user.getPreferences().getLocale();
 		if (locale == null) {
@@ -219,6 +224,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"),
@@ -236,6 +243,31 @@
 				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.HTTP);
+		}
+		if (app().services().isServingHTTPS()) {
+			availableTransports.add(Transport.HTTPS);
+		}
+		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;
@@ -252,6 +284,9 @@
 				if (lang != null) {
 					user.getPreferences().setLocale(lang.code);
 				}
+
+				user.getPreferences().setEmailMeOnMyTicketChanges(emailMeOnMyTicketChanges.getObject());
+				user.getPreferences().setTransport(transport.getObject());
 
 				try {
 					app().gitblit().reviseUser(user.username, user);
@@ -274,7 +309,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