summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Zschocke <fzs@users.noreply.github.com>2019-11-11 18:30:50 +0100
committerGitHub <noreply@github.com>2019-11-11 18:30:50 +0100
commit96a7e6e8e21d1730ee31fb45589234fc02e0d7d3 (patch)
treed0ddbdfde94baefca4d1e2f9547bd685898d5672
parent9bde5212feeafc17dbbf71d190a9d644512267be (diff)
parente5f29381eca3f28ef5792225516bbea7a3773898 (diff)
downloadgitblit-96a7e6e8e21d1730ee31fb45589234fc02e0d7d3.tar.gz
gitblit-96a7e6e8e21d1730ee31fb45589234fc02e0d7d3.zip
Merge pull request #1324 from fzs/fix-prefLocale-docsNPE
Two fixes: broken links to docs and preferred language selection
-rw-r--r--src/main/java/com/gitblit/wicket/pages/DocPage.java5
-rw-r--r--src/main/java/com/gitblit/wicket/pages/DocsPage.java4
-rw-r--r--src/main/java/com/gitblit/wicket/pages/EditUserPage.java25
-rw-r--r--src/main/java/com/gitblit/wicket/pages/UserPage.java49
4 files changed, 37 insertions, 46 deletions
diff --git a/src/main/java/com/gitblit/wicket/pages/DocPage.java b/src/main/java/com/gitblit/wicket/pages/DocPage.java
index 5d711343..6e76f1cd 100644
--- a/src/main/java/com/gitblit/wicket/pages/DocPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/DocPage.java
@@ -51,6 +51,11 @@ public class DocPage extends RepositoryPage {
Repository r = getRepository();
RevCommit commit = JGitUtils.getCommit(r, objectId);
+ if (commit == null) {
+ setResponsePage(NoDocsPage.class, params);
+ return;
+ }
+
String [] encodings = getEncodings();
// Read raw markup content and transform it to html
diff --git a/src/main/java/com/gitblit/wicket/pages/DocsPage.java b/src/main/java/com/gitblit/wicket/pages/DocsPage.java
index 52443862..f87d5134 100644
--- a/src/main/java/com/gitblit/wicket/pages/DocsPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/DocsPage.java
@@ -62,6 +62,10 @@ public class DocsPage extends RepositoryPage {
final boolean userCanEdit = currentUser.canEdit(getRepositoryModel());
RevCommit head = JGitUtils.getCommit(r, objectId);
+ if (head == null) {
+ setResponsePage(NoDocsPage.class, params);
+ return;
+ }
final String commitId = getBestCommitId(head);
List<String> extensions = processor.getAllExtensions();
diff --git a/src/main/java/com/gitblit/wicket/pages/EditUserPage.java b/src/main/java/com/gitblit/wicket/pages/EditUserPage.java
index 5b0b0147..c6014e8f 100644
--- a/src/main/java/com/gitblit/wicket/pages/EditUserPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/EditUserPage.java
@@ -112,30 +112,11 @@ public class EditUserPage extends RootSubPage {
final Palette<String> teams = new Palette<String>("teams", new ListModel<String>(
new ArrayList<String>(userTeams)), new CollectionModel<String>(app().users()
.getAllTeamNames()), new StringChoiceRenderer(), 10, false);
- Locale locale = userModel.getPreferences().getLocale();
- if (locale == null) {
- locale = Locale.ENGLISH;
- }
+ Locale locale = userModel.getPreferences().getLocale();
List<Language> languages = UserPage.getLanguages();
- Language preferredLanguage = null;
- if (locale != null) {
- String localeCode = locale.getLanguage();
- if (!StringUtils.isEmpty(locale.getCountry())) {
- localeCode += "_" + locale.getCountry();
- }
-
- for (Language lang : languages) {
- if (lang.code.equals(localeCode)) {
- // language_COUNTRY match
- preferredLanguage = lang;
- } else if (preferredLanguage != null && lang.code.startsWith(locale.getLanguage())) {
- // language match
- preferredLanguage = lang;
- }
- }
- }
- final IModel<Language> language = Model.of(preferredLanguage);
+ Language preferredLanguage = UserPage.getPreferredLanguage(locale, languages);
+ final IModel<Language> language = Model.of(preferredLanguage);
Form<UserModel> form = new Form<UserModel>("editForm", model) {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/gitblit/wicket/pages/UserPage.java b/src/main/java/com/gitblit/wicket/pages/UserPage.java
index b457304b..4fc778a6 100644
--- a/src/main/java/com/gitblit/wicket/pages/UserPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/UserPage.java
@@ -15,7 +15,6 @@
*/
package com.gitblit.wicket.pages;
-import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -167,7 +166,7 @@ public class UserPage extends RootPage {
navLinks.add(menu);
}
- public static List<Language> getLanguages(){
+ static List<Language> getLanguages(){
return Arrays.asList(
new Language("Česky","cs"),
new Language("Deutsch","de"),
@@ -184,13 +183,32 @@ public class UserPage extends RootPage {
new Language("簡體中文", "zh_CN"),
new Language("正體中文", "zh_TW"));
}
-
+
+ static Language getPreferredLanguage(Locale locale, List<Language> languages) {
+ Language preferredLanguage = null;
+ if (locale != null) {
+ String localeCode = locale.getLanguage();
+ if (!StringUtils.isEmpty(locale.getCountry())) {
+ localeCode += "_" + locale.getCountry();
+ }
+
+ for (Language language : languages) {
+ if (language.code.equals(localeCode)) {
+ // language_COUNTRY match
+ preferredLanguage = language;
+ } else if (preferredLanguage == null && language.code.startsWith(locale.getLanguage())) {
+ // language match
+ preferredLanguage = language;
+ }
+ }
+ }
+ return preferredLanguage;
+ }
+
private void addPreferences(UserModel user) {
// add preferences
Form<Void> prefs = new Form<Void>("prefsForm");
- List<Language> languages = getLanguages();
-
Locale locale = user.getPreferences().getLocale();
if (locale == null) {
// user has not specified language preference
@@ -203,28 +221,11 @@ public class UserPage extends RootPage {
if (sessionLocale != null) {
locale = sessionLocale;
}
- } else {
-
}
}
- Language preferredLanguage = null;
- if (locale != null) {
- String localeCode = locale.getLanguage();
- if (!StringUtils.isEmpty(locale.getCountry())) {
- localeCode += "_" + locale.getCountry();
- }
-
- for (Language language : languages) {
- if (language.code.equals(localeCode)) {
- // language_COUNTRY match
- preferredLanguage = language;
- } else if (preferredLanguage != null && language.code.startsWith(locale.getLanguage())) {
- // language match
- preferredLanguage = language;
- }
- }
- }
+ List<Language> languages = getLanguages();
+ Language preferredLanguage = getPreferredLanguage(locale, languages);
final IModel<String> displayName = Model.of(user.getDisplayName());
final IModel<String> emailAddress = Model.of(user.emailAddress == null ? "" : user.emailAddress);