CCM NG/ccm-cms: FolderPath now shows correct path.

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4596 8810af33-2d31-482b-a856-94f89814c4df
jensp 2017-02-23 14:14:42 +00:00
parent 82f51a1d70
commit 8fe3363c53
3 changed files with 21 additions and 6 deletions

View File

@ -19,12 +19,17 @@
package com.arsdigita.cms.ui.folder;
import com.arsdigita.bebop.list.ListModel;
import com.arsdigita.kernel.KernelConfig;
import org.libreccm.cdi.utils.CdiUtil;
import org.libreccm.configuration.ConfigurationManager;
import org.librecms.contentsection.Folder;
import org.librecms.contentsection.FolderManager;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
/**
*
@ -32,13 +37,23 @@ import java.util.Iterator;
*/
class FolderPathListModel implements ListModel {
private final Locale defaultLocale;
private final Iterator<Folder> pathFolders;
private Folder currentFolder;
public FolderPathListModel(final Folder folder) {
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final FolderManager folderManager = cdiUtil.findBean(FolderManager.class);
pathFolders = folderManager.getParentFolders(folder).iterator();
final List<Folder> parentFolders = folderManager.getParentFolders(folder);
final List<Folder> path = new ArrayList<>();
path.addAll(parentFolders);
path.add(folder);
pathFolders = path.iterator();
final ConfigurationManager confManager = cdiUtil.findBean(ConfigurationManager.class);
final KernelConfig kernelConfig = confManager.findConfiguration(
KernelConfig.class);
defaultLocale = kernelConfig.getDefaultLocale();
}
@Override
@ -53,7 +68,7 @@ class FolderPathListModel implements ListModel {
@Override
public Object getElement() {
return currentFolder.getName();
return currentFolder.getTitle().getValue(defaultLocale);
}
@Override

View File

@ -44,8 +44,8 @@ public class FolderPathListModelBuilder extends LockableImpl
@Override
public ListModel makeModel(final List list, final PageState state) {
return new FolderPathListModel(folderSelectionModel
.getSelectedObject(state));
return new FolderPathListModel(
folderSelectionModel.getSelectedObject(state));
}
}

View File

@ -85,8 +85,8 @@
<!-- EN Processing content -->
<xsl:template match="bebop:cell" mode="item-path">
<xsl:apply-templates select="." mode="span"/>
<xsl:if test="position() != last()">
<xsl:text>&gt;</xsl:text>
<xsl:if test="position() != last() and position() != 1">
<xsl:text>/</xsl:text>
</xsl:if>
</xsl:template>