diff --git a/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/contenttypes/PublicPersonalProfileXmlUtil.java b/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/contenttypes/PublicPersonalProfileXmlUtil.java index a0debefda..c884e53bf 100644 --- a/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/contenttypes/PublicPersonalProfileXmlUtil.java +++ b/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/contenttypes/PublicPersonalProfileXmlUtil.java @@ -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 navItemMap = - new HashMap(); + new LinkedHashMap(); 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 navLinks = new ArrayList(); 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 { + 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()); + } + + } } diff --git a/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties b/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties index dc4f9c751..50c1674a6 100755 --- a/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties +++ b/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties @@ -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 diff --git a/ccm-cms/src/com/arsdigita/cms/ui/authoring/AuthoringResources.properties b/ccm-cms/src/com/arsdigita/cms/ui/authoring/AuthoringResources.properties index ac96c8b8e..7092e300b 100755 --- a/ccm-cms/src/com/arsdigita/cms/ui/authoring/AuthoringResources.properties +++ b/ccm-cms/src/com/arsdigita/cms/ui/authoring/AuthoringResources.properties @@ -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 diff --git a/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties b/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties index 8354adf18..c3fdae45d 100755 --- a/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties +++ b/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties @@ -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? diff --git a/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties b/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties index abc15b585..f2337710d 100755 --- a/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties +++ b/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties @@ -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 diff --git a/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java b/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java index 47a529567..926fa4854 100644 --- a/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java +++ b/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java @@ -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(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 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 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 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(sortFields.keySet()).get(0); } - Element sortFieldElems = controls.newChildElement("sortFields"); + final Element sortFieldElems = controls.newChildElement("sortFields"); sortFieldElems.addAttribute("sortBy", sortByKey); for (Map.Entry sortField : sortFields.entrySet()) { - Element sortFieldElem = sortFieldElems.newChildElement( + final Element sortFieldElem = sortFieldElems.newChildElement( "sortField"); sortFieldElem.addAttribute("label", sortField.getKey()); }