shuber 2005/03/07 18:37:38 CET
Modified files: (Branch: JAHIA-4-1-BRANCH)
src/java/org/jahia/admin/sites ManageSites.java
src/java/org/jahia/bin JahiaAdministration.java
src/java/org/jahia/services/sites JahiaSite.java
src/java/org/jahia/utils LanguageCodeConverters.java
src/views/jsp/jahia/administration manage_languages.jsp
manage_languages_edit_mappings.jsp
site_add.jsp
site_existant_admin.jsp
Log:
Fix for JAHIA-273 : Sort virtual site list and sort language list
- Fixed virtual site lists to be sorted by site title
- Fixed language lists to be sorted by display name in current navigation
language
- Fixed language name display in administration to always use the current
navigation language
Revision Changes Path
1.31.2.1.2.1 +29 -4 jahia/src/java/org/jahia/admin/sites/ManageSites.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/admin/sites/ManageSites.java.diff?r1=1.31.2.1&r2=1.31.2.1.2.1&f=h
1.57.2.3.2.2 +9 -1 jahia/src/java/org/jahia/bin/JahiaAdministration.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/bin/JahiaAdministration.java.diff?r1=1.57.2.3.2.1&r2=1.57.2.3.2.2&f=h
1.21.2.4.2.1 +39 -0
jahia/src/java/org/jahia/services/sites/JahiaSite.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/sites/JahiaSite.java.diff?r1=1.21.2.4&r2=1.21.2.4.2.1&f=h
1.3.6.1 +51 -0
jahia/src/java/org/jahia/utils/LanguageCodeConverters.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/utils/LanguageCodeConverters.java.diff?r1=1.3&r2=1.3.6.1&f=h
1.16.4.1 +15 -11
jahia/src/views/jsp/jahia/administration/manage_languages.jsp
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/views/jsp/jahia/administration/manage_languages.jsp.diff?r1=1.16&r2=1.16.4.1&f=h
1.8.6.1 +10 -3
jahia/src/views/jsp/jahia/administration/manage_languages_edit_mappings.jsp
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/views/jsp/jahia/administration/manage_languages_edit_mappings.jsp.diff?r1=1.8&r2=1.8.6.1&f=h
1.11.6.1 +13 -9 jahia/src/views/jsp/jahia/administration/site_add.jsp
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/views/jsp/jahia/administration/site_add.jsp.diff?r1=1.11&r2=1.11.6.1&f=h
1.11.6.1 +1 -1
jahia/src/views/jsp/jahia/administration/site_existant_admin.jsp
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/views/jsp/jahia/administration/site_existant_admin.jsp.diff?r1=1.11&r2=1.11.6.1&f=h
Index: ManageSites.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/admin/sites/Attic/ManageSites.java,v
retrieving revision 1.31.2.1
retrieving revision 1.31.2.1.2.1
diff -u -r1.31.2.1 -r1.31.2.1.2.1
--- ManageSites.java 8 Sep 2004 13:25:21 -0000 1.31.2.1
+++ ManageSites.java 7 Mar 2005 17:37:36 -0000 1.31.2.1.2.1
@@ -1,4 +1,4 @@
-// $Id: ManageSites.java,v 1.31.2.1 2004/09/08 13:25:21 shuber Exp $
+// $Id: ManageSites.java,v 1.31.2.1.2.1 2005/03/07 17:37:36 shuber Exp $
//
// ____.
// __/\ ______| |__/\. _______
@@ -88,6 +88,7 @@
import org.jahia.utils.properties.PropertiesManager;
import org.jahia.security.license.License;
import org.jahia.services.cache.CacheFactory;
+import java.util.Collections;
/**
* desc: This class provides the business methods for sites
@@ -218,8 +219,19 @@
if(jahiaDisplayMessage == null) { jahiaDisplayMessage =
Jahia.COPYRIGHT; }
try {
- Enumeration enum = sMgr.getSites();
- request.setAttribute("sitesList", enum);
+ Enumeration siteEnum = sMgr.getSites();
+ Vector sortedSites = new Vector();
+ while (siteEnum.hasMoreElements()) {
+ JahiaSite curSite = (JahiaSite) siteEnum.nextElement();
+ sortedSites.add(curSite);
+ }
+ Locale defaultLocale =
(Locale)session.getAttribute(ParamBean.SESSION_LOCALE);
+ if (defaultLocale != null) {
+ Collections.sort(sortedSites,
JahiaSite.getTitleComparator(defaultLocale));
+ } else {
+ Collections.sort(sortedSites,
JahiaSite.getTitleComparator());
+ }
+ request.setAttribute("sitesList", sortedSites.elements());
} catch (JahiaException ex) {
logger.error("Error while retrieving site list", ex);
jahiaDisplayMessage =
JahiaResourceBundle.getAdminResource("org.jahia.admin.JahiaDisplayMessage.requestProcessingError.label",
@@ -310,6 +322,13 @@
}
if ( grantedSites == null ){
grantedSites = new Vector();
+ } else {
+ Locale defaultLocale =
(Locale)session.getAttribute(ParamBean.SESSION_LOCALE);
+ if (defaultLocale != null) {
+ Collections.sort(grantedSites,
JahiaSite.getTitleComparator(defaultLocale));
+ } else {
+ Collections.sort(grantedSites,
JahiaSite.getTitleComparator());
+ }
}
}
@@ -973,6 +992,12 @@
if(sitesList.size() == 0) {
allSites = null;
} else {
+ Locale defaultLocale =
(Locale)session.getAttribute(ParamBean.SESSION_LOCALE);
+ if (defaultLocale != null) {
+ Collections.sort(sitesList,
JahiaSite.getTitleComparator(defaultLocale));
+ } else {
+ Collections.sort(sitesList,
JahiaSite.getTitleComparator());
+ }
allSites = sitesList.elements();
}
@@ -1005,7 +1030,7 @@
// set attributes...
session.setAttribute(CLASS_NAME + "jahiaDisplayMessage",
jahiaDisplayMessage);
request.setAttribute("allSites", allSites);
- request.setAttribute("allSitesJS", sMgr.getSites());
+ request.setAttribute("allSitesJS", sitesList.elements());
request.setAttribute("selectedSite", new Integer(selectedSite));
// redirect...
Index: JahiaAdministration.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/bin/Attic/JahiaAdministration.java,v
retrieving revision 1.57.2.3.2.1
retrieving revision 1.57.2.3.2.2
diff -u -r1.57.2.3.2.1 -r1.57.2.3.2.2
--- JahiaAdministration.java 7 Mar 2005 13:26:38 -0000 1.57.2.3.2.1
+++ JahiaAdministration.java 7 Mar 2005 17:37:36 -0000 1.57.2.3.2.2
@@ -1,4 +1,4 @@
-// $Id: JahiaAdministration.java,v 1.57.2.3.2.1 2005/03/07 13:26:38 shuber
Exp $
+// $Id: JahiaAdministration.java,v 1.57.2.3.2.2 2005/03/07 17:37:36 shuber
Exp $
//
// ____.
// __/\ ______| |__/\. _______
@@ -100,6 +100,7 @@
import org.jahia.utils.PathResolver;
import org.jahia.utils.WebAppPathResolver;
import org.jahia.services.cache.CacheFactory;
+import java.util.Collections;
/**
@@ -808,6 +809,13 @@
if ( grantedSites == null ){
logger.debug("can not admin any site at all !!! ");
grantedSites = new Vector();
+ } else {
+ Locale defaultLocale =
(Locale)session.getAttribute(ParamBean.SESSION_LOCALE);
+ if (defaultLocale != null) {
+ Collections.sort(grantedSites,
JahiaSite.getTitleComparator(defaultLocale));
+ } else {
+ Collections.sort(grantedSites,
JahiaSite.getTitleComparator());
+ }
}
if ( theSite == null && (grantedSites.size()>0) ){
Index: JahiaSite.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/services/sites/Attic/JahiaSite.java,v
retrieving revision 1.21.2.4
retrieving revision 1.21.2.4.2.1
diff -u -r1.21.2.4 -r1.21.2.4.2.1
--- JahiaSite.java 29 Sep 2004 14:16:34 -0000 1.21.2.4
+++ JahiaSite.java 7 Mar 2005 17:37:37 -0000 1.21.2.4.2.1
@@ -42,6 +42,8 @@
import java.util.Properties;
import java.util.Vector;
import java.io.Serializable;
+import java.util.Comparator;
+import java.text.Collator;
/**
@@ -1105,4 +1107,41 @@
return this.mSettings;
}
+ public static class TitleComparator implements Comparator {
+
+ private Collator collator = Collator.getInstance();
+
+ public TitleComparator(Locale locale) {
+ if (locale != null) {
+ collator = Collator.getInstance(locale);
+ }
+ }
+
+ public TitleComparator() {
+ }
+
+ public int compare(Object o1,
+ Object o2) {
+ JahiaSite site1 = (JahiaSite) o1;
+ JahiaSite site2 = (JahiaSite) o2;
+ return collator.compare(site1.getTitle(), site2.getTitle());
+ }
+
+ public boolean equals(Object obj) {
+ if (obj instanceof TitleComparator) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+
+ public static TitleComparator getTitleComparator() {
+ return new TitleComparator();
+ }
+
+ public static TitleComparator getTitleComparator(Locale locale) {
+ return new TitleComparator(locale);
+ }
+
}
Index: LanguageCodeConverters.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/utils/Attic/LanguageCodeConverters.java,v
retrieving revision 1.3
retrieving revision 1.3.6.1
diff -u -r1.3 -r1.3.6.1
--- LanguageCodeConverters.java 30 Jun 2003 22:31:41 -0000 1.3
+++ LanguageCodeConverters.java 7 Mar 2005 17:37:37 -0000 1.3.6.1
@@ -2,6 +2,10 @@
import java.util.Locale;
import java.util.StringTokenizer;
+import java.text.Collator;
+import java.util.Comparator;
+import java.util.ArrayList;
+import java.util.Collections;
/**
* <p>Title: Utility class to convert between the different type of language
@@ -173,4 +177,51 @@
}
}
+ public static ArrayList getSortedLocaleList(Locale currentLocale) {
+ Locale[] availableLocales = Locale.getAvailableLocales();
+ ArrayList sortedLocaleList = new ArrayList();
+ for (int i=0; i < availableLocales.length; i++) {
+ Locale curLocale = availableLocales[i];
+ sortedLocaleList.add(curLocale);
+ }
+ Collections.sort(sortedLocaleList,
LanguageCodeConverters.getLocaleDisplayNameComparator(currentLocale));
+ return sortedLocaleList;
+ }
+
+ /**
+ * Comparator implementation that compares locale display names in a
certain
+ * current locale.
+ */
+ public static class LocaleDisplayNameComparator implements Comparator {
+
+ private Collator collator = Collator.getInstance();
+ private Locale currentLocale;
+
+ public LocaleDisplayNameComparator(Locale locale) {
+ if (locale != null) {
+ this.currentLocale = locale;
+ collator = Collator.getInstance(locale);
+ }
+ }
+
+ public int compare(Object o1,
+ Object o2) {
+ Locale locale1 = (Locale) o1;
+ Locale locale2 = (Locale) o2;
+ return collator.compare(locale1.getDisplayName(currentLocale),
locale2.getDisplayName(currentLocale));
+ }
+
+ public boolean equals(Object obj) {
+ if (obj instanceof LocaleDisplayNameComparator) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+
+ public static LocaleDisplayNameComparator
getLocaleDisplayNameComparator(Locale locale) {
+ return new LocaleDisplayNameComparator(locale);
+ }
+
}
\ No newline at end of file
Index: manage_languages.jsp
===================================================================
RCS file:
/home/cvs/repository/jahia/src/views/jsp/jahia/administration/Attic/manage_languages.jsp,v
retrieving revision 1.16
retrieving revision 1.16.4.1
diff -u -r1.16 -r1.16.4.1
--- manage_languages.jsp 30 Jan 2004 16:25:55 -0000 1.16
+++ manage_languages.jsp 7 Mar 2005 17:37:37 -0000 1.16.4.1
@@ -1,4 +1,4 @@
-<[EMAIL PROTECTED] import =
"org.jahia.bin.*,java.util.*,org.jahia.services.sites.*,org.jahia.registries.*,org.jahia.utils.*"%>
+<[EMAIL PROTECTED] import =
"org.jahia.bin.*,org.jahia.params.*,java.util.*,org.jahia.services.sites.*,org.jahia.registries.*,org.jahia.utils.*"%>
<%@ taglib uri="JahiaLib" prefix="jahia" %>
<[EMAIL PROTECTED] file="include_header.jsp"%>
@@ -30,6 +30,14 @@
}
}
+ Locale currentLocale = request.getLocale();
+ if (session != null) {
+ if (session.getAttribute(ParamBean.SESSION_LOCALE) != null) {
+ currentLocale = (Locale) session.getAttribute(ParamBean.
+ SESSION_LOCALE);
+ }
+ }
+
%>
@@ -147,7 +155,7 @@
<td align="left">
<input type="text" size="2"
name="rank_<%=curSetting.getCode()%>" value="<%=count%>">
</td>
- <td align="left"><%=curLocale.getDisplayName()%>
(<%=curLocale.toString()%>)<% if
(homePageLanguageSet.contains(curLocale.toString())){%>*<%}%></td>
+ <td align="left"><%=curLocale.getDisplayName(currentLocale)%>
(<%=curLocale.toString()%>)<% if
(homePageLanguageSet.contains(curLocale.toString())){%>*<%}%></td>
<td align="center">
<% if (curSetting.isActivated()) { %>
<input type="checkbox"
name="active_<%=curSetting.getCode()%>" value="<%=count%>" checked>
@@ -225,7 +233,7 @@
Locale toLocale =
LanguageCodeConverters.languageCodeToLocale(curMapping.getToLanguageCode());
%>
<tr>
- <td><%=fromLocale.getDisplayName()%>
(<%=fromLocale.toString()%>)-> <%=toLocale.getDisplayName()%>
(<%=toLocale.toString()%>)</td>
+ <td><%=fromLocale.getDisplayName(currentLocale)%>
(<%=fromLocale.toString()%>)-> <%=toLocale.getDisplayName(currentLocale)%>
(<%=toLocale.toString()%>)</td>
</tr>
<%
}
@@ -253,18 +261,14 @@
<b><jahia:adminResourceBundle
resourceName="org.jahia.admin.languages.ManageSiteLanguages.availableLanguages.label"/></b><br>
<select name="language_list" multiple="" size="10">
<%
- Locale[] availableLocales = Locale.getAvailableLocales();
- for (int i=0; i < availableLocales.length; i++) {
- Locale curLocale = availableLocales[i];
+ Iterator localeIter =
LanguageCodeConverters.getSortedLocaleList(currentLocale).iterator();
+ while (localeIter.hasNext()) {
+ Locale curLocale = (Locale) localeIter.next();
// we must now check if this language wasn't already inserted in
// the site.
if (!languageSet.contains(curLocale.toString())) {
String displayName = "";
- if (acceptsUTF8) {
- displayName = curLocale.getDisplayName(curLocale) + ", " +
curLocale.getDisplayName();
- } else {
- displayName = curLocale.getDisplayName();
- }
+ displayName = curLocale.getDisplayName(currentLocale);
%>
<option value="<%=curLocale%>"><%=displayName%>
(<%=curLocale.toString()%>)</option>
<%
Index: manage_languages_edit_mappings.jsp
===================================================================
RCS file:
/home/cvs/repository/jahia/src/views/jsp/jahia/administration/Attic/manage_languages_edit_mappings.jsp,v
retrieving revision 1.8
retrieving revision 1.8.6.1
diff -u -r1.8 -r1.8.6.1
--- manage_languages_edit_mappings.jsp 9 Sep 2003 13:57:14 -0000
1.8
+++ manage_languages_edit_mappings.jsp 7 Mar 2005 17:37:37 -0000
1.8.6.1
@@ -1,4 +1,4 @@
-<[EMAIL PROTECTED] import =
"org.jahia.bin.*,java.util.*,org.jahia.services.sites.*,org.jahia.registries.*,org.jahia.utils.*"%>
+<[EMAIL PROTECTED] import =
"org.jahia.bin.*,org.jahia.params.*,java.util.*,org.jahia.services.sites.*,org.jahia.registries.*,org.jahia.utils.*"%>
<%@ taglib uri="JahiaLib" prefix="jahia" %>
<[EMAIL PROTECTED] file="include_header.jsp"%>
@@ -41,6 +41,13 @@
String requestURI = (String)request.getAttribute("requestURI");
String contextRoot = (String)request.getContextPath();
+ Locale currentLocale = request.getLocale();
+ if (session != null) {
+ if (session.getAttribute(ParamBean.SESSION_LOCALE) != null) {
+ currentLocale = (Locale) session.getAttribute(ParamBean.
+ SESSION_LOCALE);
+ }
+ }
%>
@@ -106,7 +113,7 @@
}
%>
<td align="right">
- <%=curIso639Locale.getDisplayName()%>
(<%=curIso639Locale.toString()%>) <br>
+ <%=curIso639Locale.getDisplayName(currentLocale)%>
(<%=curIso639Locale.toString()%>) <br>
<jahia:adminResourceBundle
resourceName="org.jahia.admin.languages.ManageSiteLanguages.isMappedTo.label"/>
</td>
<td align="left">
@@ -126,7 +133,7 @@
<%
}
%>
- <%=padString(curLocale.getDisplayName() + "(" +
curLocale.toString() + ")", 40)%>
+ <%=padString(curLocale.getDisplayName(currentLocale) + "(" +
curLocale.toString() + ")", 40)%>
</option>
<%
}
Index: site_add.jsp
===================================================================
RCS file:
/home/cvs/repository/jahia/src/views/jsp/jahia/administration/Attic/site_add.jsp,v
retrieving revision 1.11
retrieving revision 1.11.6.1
diff -u -r1.11 -r1.11.6.1
--- site_add.jsp 14 Nov 2003 13:31:16 -0000 1.11
+++ site_add.jsp 7 Mar 2005 17:37:37 -0000 1.11.6.1
@@ -1,4 +1,4 @@
-<[EMAIL PROTECTED] import="org.jahia.bin.*,java.util.*,org.jahia.bin.*"%>
+<[EMAIL PROTECTED]
import="org.jahia.bin.*,java.util.*,org.jahia.bin.*,org.jahia.utils.*,org.jahia.params.*"%>
<[EMAIL PROTECTED] file="include_header.jsp"%>
<%
String warningMsg =
(String)request.getAttribute("warningMsg");
@@ -17,6 +17,14 @@
}
}
+ Locale currentLocale = request.getLocale();
+ if (session != null) {
+ if (session.getAttribute(ParamBean.SESSION_LOCALE) != null) {
+ currentLocale = (Locale) session.getAttribute(ParamBean.
+ SESSION_LOCALE);
+ }
+ }
+
%>
<tr>
@@ -93,15 +101,11 @@
: <jahia:adminResourceBundle
resourceName="org.jahia.admin.site.ManageSites.availableLanguages.label"/><br>
<select name="languageList" size="10">
<%
- Locale[] availableLocales =
Locale.getAvailableLocales();
- for (int i=0; i <
availableLocales.length; i++) {
- Locale curLocale =
availableLocales[i];
+ Iterator localeIter =
LanguageCodeConverters.getSortedLocaleList(currentLocale).iterator();
+ while (localeIter.hasNext()) {
+ Locale curLocale = (Locale)
localeIter.next();
String displayName = "";
- if (acceptsUTF8) {
- displayName =
curLocale.getDisplayName(curLocale) + ", " + curLocale.getDisplayName();
- } else {
- displayName =
curLocale.getDisplayName();
- }
+ displayName =
curLocale.getDisplayName(currentLocale);
%>
<option value="<%=curLocale%>" <% if (
curLocale.toString().equals(selectedLocale.toString()) ){%>selected="1"<%}%>
><%=displayName%> (<%=curLocale.toString()%>)</option>
<%
Index: site_existant_admin.jsp
===================================================================
RCS file:
/home/cvs/repository/jahia/src/views/jsp/jahia/administration/Attic/site_existant_admin.jsp,v
retrieving revision 1.11
retrieving revision 1.11.6.1
diff -u -r1.11 -r1.11.6.1
--- site_existant_admin.jsp 9 Sep 2003 13:57:14 -0000 1.11
+++ site_existant_admin.jsp 7 Mar 2005 17:37:37 -0000 1.11.6.1
@@ -53,7 +53,7 @@
<option value="0"<%
if(selectedSite.intValue()==0) { %> selected<%}%>>
--------- <jahia:adminResourceBundle
resourceName="org.jahia.admin.site.ManageSites.pleaseChooseASite.label"/> --------- </option>
<% while(allSites.hasMoreElements()) {
JahiaSite site = (JahiaSite)
allSites.nextElement(); %>
- <option
value="<%=site.getID()%>"<%if(selectedSite.intValue()==site.getID()){%>
selected<%}%>><%=site.getServerName()%> </option>
+ <option
value="<%=site.getID()%>"<%if(selectedSite.intValue()==site.getID()){%>
selected<%}%>><%=site.getTitle()%> </option>
<% } %>
</select>
<% } else { %>