- BugFix für PublicPersonalProfile: Unter bestimmten Umständen wurde eine falsche (alte) Reihenfolge der Links für die Navigation im PPP verwendet (Ticket #1304)
- Einige Übersetzungen im Content-Center ergänzt git-svn-id: https://svn.libreccm.org/ccm/trunk@1819 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
1550383a13
commit
a7fda6a6dc
|
|
@ -27,7 +27,11 @@ import com.arsdigita.domain.DomainObjectFactory;
|
|||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.ui.UI;
|
||||
import com.arsdigita.xml.Element;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
|
@ -69,12 +73,12 @@ public class PublicPersonalProfileXmlUtil {
|
|||
appUrl = String.format("%s/ccm%s", prefix, appPath);
|
||||
}
|
||||
|
||||
Element navRoot =
|
||||
final Element navRoot =
|
||||
root.newChildElement("nav:categoryMenu",
|
||||
"http://ccm.redhat.com/navigation");
|
||||
navRoot.addAttribute("id", "categoryMenu");
|
||||
|
||||
Element navList =
|
||||
final Element navList =
|
||||
navRoot.newChildElement("nav:category",
|
||||
"http://ccm.redhat.com/navigation");
|
||||
navList.addAttribute("AbstractTree", "AbstractTree");
|
||||
|
|
@ -91,7 +95,7 @@ public class PublicPersonalProfileXmlUtil {
|
|||
|
||||
|
||||
if (config.getShowHomeNavEntry()) {
|
||||
Element navHome =
|
||||
final Element navHome =
|
||||
navList.newChildElement("nav:category",
|
||||
"http://ccm.redhat.com/navigation");
|
||||
navHome.addAttribute("AbstractTree", "AbstractTree");
|
||||
|
|
@ -106,7 +110,7 @@ public class PublicPersonalProfileXmlUtil {
|
|||
|
||||
/*String homeLabel = homeLabels.get(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage());*/
|
||||
String homeLabel = homeLabels.get(profile.getLanguage());
|
||||
final String homeLabel = homeLabels.get(profile.getLanguage());
|
||||
if (homeLabel == null) {
|
||||
navHome.addAttribute("title", "Home");
|
||||
} else {
|
||||
|
|
@ -120,13 +124,13 @@ public class PublicPersonalProfileXmlUtil {
|
|||
}
|
||||
|
||||
//Get the available Navigation items
|
||||
PublicPersonalProfileNavItemCollection navItems =
|
||||
final PublicPersonalProfileNavItemCollection navItems =
|
||||
new PublicPersonalProfileNavItemCollection();
|
||||
/*navItems.addLanguageFilter(GlobalizationHelper.getNegotiatedLocale().
|
||||
getLanguage());*/
|
||||
navItems.addLanguageFilter(profile.getLanguage());
|
||||
final Map<String, PublicPersonalProfileNavItem> navItemMap =
|
||||
new HashMap<String, PublicPersonalProfileNavItem>();
|
||||
new LinkedHashMap<String, PublicPersonalProfileNavItem>();
|
||||
PublicPersonalProfileNavItem navItem;
|
||||
while (navItems.next()) {
|
||||
navItem = navItems.getNavItem();
|
||||
|
|
@ -153,14 +157,15 @@ public class PublicPersonalProfileXmlUtil {
|
|||
profile.getProfileUrl()));
|
||||
profileElem.addAttribute("title", profile.getOwner().getFullName());
|
||||
|
||||
//Get the related links of the profiles
|
||||
DataCollection links =
|
||||
//Get the related links of the profile
|
||||
final DataCollection links =
|
||||
RelatedLink.getRelatedLinks(profile,
|
||||
PublicPersonalProfile.LINK_LIST_NAME);
|
||||
links.addOrder(Link.ORDER);
|
||||
RelatedLink link;
|
||||
String navLinkKey;
|
||||
Element navElem;
|
||||
final List<NavLink> navLinks = new ArrayList<NavLink>();
|
||||
while (links.next()) {
|
||||
link = (RelatedLink) DomainObjectFactory.newInstance(links.
|
||||
getDataObject());
|
||||
|
|
@ -172,10 +177,10 @@ public class PublicPersonalProfileXmlUtil {
|
|||
//ToDo
|
||||
}
|
||||
|
||||
ContentItem targetItem = link.getTargetItem();
|
||||
final ContentItem targetItem = link.getTargetItem();
|
||||
if (!(targetItem instanceof PublicPersonalProfile)
|
||||
&& (targetItem instanceof ContentPage)) {
|
||||
ContentPage targetPage = (ContentPage) targetItem;
|
||||
final ContentPage targetPage = (ContentPage) targetItem;
|
||||
/*if (!(targetPage.getContentBundle().hasInstance(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage(),
|
||||
false))) {
|
||||
|
|
@ -187,40 +192,95 @@ public class PublicPersonalProfileXmlUtil {
|
|||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
navLinks.add(createNavLink(navItem, navLinkKey, targetItem));
|
||||
}
|
||||
|
||||
Collections.sort(navLinks);
|
||||
|
||||
for(NavLink navLink : navLinks) {
|
||||
navElem =
|
||||
navList.newChildElement("nav:category",
|
||||
"http://ccm.redhat.com/navigation");
|
||||
navElem.addAttribute("AbstractTree", "AbstractTree");
|
||||
navElem.addAttribute("description", "");
|
||||
//navHome.addAttribute("id", "");
|
||||
if ((navPath != null) && navPath.equals(navLinkKey)) {
|
||||
if ((navPath != null) && navPath.equals(navLink.getKey())) {
|
||||
navElem.addAttribute("isSelected", "true");
|
||||
final Element currentPathElem =
|
||||
pathElem.newChildElement("nav:category",
|
||||
"http://ccm.redhat.com/navigation");
|
||||
currentPathElem.addAttribute("title", navItem.getLabel());
|
||||
currentPathElem.addAttribute("title", navLink.getNavItem().getLabel());
|
||||
currentPathElem.addAttribute("url",
|
||||
String.format("%s/%s/%s",
|
||||
appUrl,
|
||||
profile.getProfileUrl(),
|
||||
navLinkKey));
|
||||
navLink.getKey()));
|
||||
} else {
|
||||
navElem.addAttribute("isSelected", "false");
|
||||
}
|
||||
navElem.addAttribute("sortKey", "");
|
||||
if (navItem == null) {
|
||||
navElem.addAttribute("title", navLinkKey);
|
||||
if (navLink.getTarget() == null) {
|
||||
navElem.addAttribute("title", navLink.getKey());
|
||||
} else {
|
||||
navElem.addAttribute("title", navItem.getLabel());
|
||||
navElem.addAttribute("title", navLink.getNavItem().getLabel());
|
||||
}
|
||||
navElem.addAttribute("url", String.format("%s/%s/%s",
|
||||
appUrl,
|
||||
profile.getProfileUrl(),
|
||||
navLinkKey));
|
||||
navLink.getKey()));
|
||||
|
||||
navElem.addAttribute("navItem", navLinkKey);
|
||||
navElem.addAttribute("navItem", navLink.getKey());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private NavLink createNavLink(final PublicPersonalProfileNavItem navItem,
|
||||
final String key,
|
||||
final ContentItem target) {
|
||||
final NavLink navLink = new NavLink();
|
||||
navLink.setNavItem(navItem);
|
||||
navLink.setKey(key);
|
||||
navLink.setTarget(target);
|
||||
return navLink;
|
||||
}
|
||||
|
||||
private class NavLink implements Comparable<NavLink> {
|
||||
private PublicPersonalProfileNavItem navItem;
|
||||
private String key;
|
||||
private ContentItem target;
|
||||
|
||||
public NavLink() {
|
||||
//Nothing
|
||||
}
|
||||
|
||||
public PublicPersonalProfileNavItem getNavItem() {
|
||||
return navItem;
|
||||
}
|
||||
|
||||
public void setNavItem(final PublicPersonalProfileNavItem navItem) {
|
||||
this.navItem = navItem;
|
||||
}
|
||||
|
||||
public ContentItem getTarget() {
|
||||
return target;
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(final String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public void setTarget(final ContentItem target) {
|
||||
this.target = target;
|
||||
}
|
||||
|
||||
public int compareTo(final NavLink other) {
|
||||
return navItem.getOrder().compareTo(other.getNavItem().getOrder());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1101,3 +1101,5 @@ cms.ui.search.create.select_close=Item ausw\u00e4hlen und schlie\u00dfen
|
|||
cms.ui.search.create.select_edit=Item ausw\u00e4hlen und weiter bearbeiten
|
||||
|
||||
cms.ui.clear=Zur\u00fccksetzen
|
||||
cms.ui.type.minimum_number_of_values_bigger_than_maximum_number_of_values=Maximaler Wert kleiner als minimaler Wert
|
||||
cms.ui.type.minimummaximum_number_of_values_cannot_be_negative=Keine negativen Werte erlaubt
|
||||
|
|
|
|||
|
|
@ -61,3 +61,5 @@ cms.ui.authoring.version_number=Version #
|
|||
cms.ui.authoring.document_type=Document type
|
||||
cms.ui.authoring.format=Format
|
||||
cms.ui.authoring.security_class=Security class
|
||||
cms.ui.authoring.failed_to_upload_image=Failed to upload image
|
||||
cms.ui.authoring.choose_contact=Kontakt ausw\u00e4hlen
|
||||
|
|
|
|||
|
|
@ -70,5 +70,5 @@ cms.ui.folder.no_such_item=Item ID supplied does not match an existing Content I
|
|||
cms.ui.folder.filter.all=All
|
||||
cms.ui.folder.filter=Filter for work
|
||||
cms.ui.folder.filter_do=Filter
|
||||
cms.ui.folder.languages=
|
||||
cms.ui.folder.languages=Languages
|
||||
cms.ui.folder.delete_confirmation=Permanently delete this item?
|
||||
|
|
|
|||
|
|
@ -66,5 +66,9 @@ cms.ui.folder.remove_asset_link=Entfernen
|
|||
cms.ui.folder.filter.all=Alle
|
||||
cms.ui.folder.filter=Nach Begriff filtern
|
||||
cms.ui.folder.filter_do=Filtern
|
||||
cms.ui.folder.languages=
|
||||
cms.ui.folder.languages=Sprachen
|
||||
cms.ui.folder.delete_confirmation=Wollen Sie dieses Content-Item l\u00f6schen?
|
||||
cms.ui.folder.edit_selection=Ausgew\u00e4hlte Items kopieren oder verschieben:
|
||||
cms.ui.folder.creation_date=Erstellungsdatum
|
||||
cms.ui.folder.last_modified=Letzte \u00c4nderung
|
||||
cms.ui.folder.index=Index
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.arsdigita.navigation.ui.object;
|
||||
|
||||
import com.arsdigita.globalization.Globalization;
|
||||
import com.arsdigita.navigation.Navigation;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
|
@ -193,7 +194,7 @@ public class CustomizableObjectList extends ComplexObjectList {
|
|||
* @return The property to sort by.
|
||||
*/
|
||||
public String getOrder(final String id) {
|
||||
String order = sortFields.get(id);
|
||||
final String order = sortFields.get(id);
|
||||
if ((order == null) || order.isEmpty()) {
|
||||
return new ArrayList<String>(sortFields.values()).get(0);
|
||||
}
|
||||
|
|
@ -211,10 +212,10 @@ public class CustomizableObjectList extends ComplexObjectList {
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
protected DataCollection getObjects(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
protected DataCollection getObjects(final HttpServletRequest request,
|
||||
final HttpServletResponse response) {
|
||||
//Set filters (using the SQL)
|
||||
StringBuilder sqlFilters = new StringBuilder();
|
||||
final StringBuilder sqlFilters = new StringBuilder();
|
||||
for (Map.Entry<String, Filter> filterEntry : filters.entrySet()) {
|
||||
if ((filterEntry.getValue().getFilter() == null)
|
||||
|| (filterEntry.getValue().getFilter().isEmpty())) {
|
||||
|
|
@ -232,7 +233,7 @@ public class CustomizableObjectList extends ComplexObjectList {
|
|||
setSQLFilter(sqlFilters.toString());
|
||||
}
|
||||
|
||||
DataCollection objects = super.getObjects(request, response);
|
||||
final DataCollection objects = super.getObjects(request, response);
|
||||
|
||||
return objects;
|
||||
}
|
||||
|
|
@ -250,10 +251,10 @@ public class CustomizableObjectList extends ComplexObjectList {
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Element generateXML(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
public Element generateXML(final HttpServletRequest request,
|
||||
final HttpServletResponse response) {
|
||||
//Some stuff for the list (copied from ComplexObjectList)
|
||||
Element content = Navigation.newElement("customizableObjectList");
|
||||
final Element content = Navigation.newElement("customizableObjectList");
|
||||
|
||||
if (m_customName != null) {
|
||||
content.addAttribute(CUSTOM_NAME, m_customName);
|
||||
|
|
@ -281,22 +282,22 @@ public class CustomizableObjectList extends ComplexObjectList {
|
|||
//}
|
||||
|
||||
for (Map.Entry<String, Filter> filterEntry : filters.entrySet()) {
|
||||
String value = request.getParameter(filterEntry.getKey());
|
||||
final String value = Globalization.decodeParameter(request, filterEntry.getKey());
|
||||
|
||||
if ((value != null) && !value.isEmpty()) {
|
||||
filterEntry.getValue().setValue(value);
|
||||
}
|
||||
}
|
||||
|
||||
Element controls = content.newChildElement("filterControls");
|
||||
final Element controls = content.newChildElement("filterControls");
|
||||
controls.addAttribute("customName", m_customName);
|
||||
|
||||
Element filterElems = controls.newChildElement("filters");
|
||||
final Element filterElems = controls.newChildElement("filters");
|
||||
for (Map.Entry<String, Filter> filterEntry : filters.entrySet()) {
|
||||
filterElems.addContent(filterEntry.getValue().getXml());
|
||||
}
|
||||
|
||||
if (sortFields.size() > 0) {
|
||||
if (!sortFields.isEmpty()) {
|
||||
//Look for a sort parameter. If one is found, use one to sort the data
|
||||
//collection (if it is a valid value). If no sort parameter is found,
|
||||
//use the first sort field as default.
|
||||
|
|
@ -305,10 +306,10 @@ public class CustomizableObjectList extends ComplexObjectList {
|
|||
sortByKey = new ArrayList<String>(sortFields.keySet()).get(0);
|
||||
}
|
||||
|
||||
Element sortFieldElems = controls.newChildElement("sortFields");
|
||||
final Element sortFieldElems = controls.newChildElement("sortFields");
|
||||
sortFieldElems.addAttribute("sortBy", sortByKey);
|
||||
for (Map.Entry<String, String> sortField : sortFields.entrySet()) {
|
||||
Element sortFieldElem = sortFieldElems.newChildElement(
|
||||
final Element sortFieldElem = sortFieldElems.newChildElement(
|
||||
"sortField");
|
||||
sortFieldElem.addAttribute("label", sortField.getKey());
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue