CCM NG/ccm-cms/BrowseTab: Changing the current folder by the links in the item list now works. Also the link for going the edit form of an content item is correct now.
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4582 8810af33-2d31-482b-a856-94f89814c4dfccm-docs
parent
3f59f81984
commit
56ebb00414
|
|
@ -119,24 +119,6 @@ public class FolderBrowser extends Table {
|
|||
|
||||
this.folderSelectionModel = folderSelectionModel;
|
||||
|
||||
/*
|
||||
*
|
||||
* This code should be uncommented if the desired behaviour is for a
|
||||
* change of folder to cause reversion to default ordering of contained
|
||||
* items (by name ascending). Our feeling is that the user selected
|
||||
* ordering should be retained for the duration of the folder browsing
|
||||
* session. If anyone wants this alternative behaviour it should be
|
||||
* brought in under the control of a config parameter.
|
||||
*
|
||||
* m_currentFolder.addChangeListener(new ChangeListener() {
|
||||
*
|
||||
* public void stateChanged(ChangeEvent e) { PageState state =
|
||||
* e.getPageState(); state.setValue(m_sortType,
|
||||
* m_sortType.getDefaultValue()); state.setValue(m_sortDirection,
|
||||
* m_sortDirection.getDefaultValue());
|
||||
*
|
||||
* }});
|
||||
*/
|
||||
setClassAttr("dataTable");
|
||||
|
||||
getHeader().setDefaultRenderer(
|
||||
|
|
@ -194,8 +176,7 @@ public class FolderBrowser extends Table {
|
|||
final PermissionChecker permissionChecker = cdiUtil.findBean(
|
||||
PermissionChecker.class);
|
||||
final Category folder = (Category) folderSelectionModel
|
||||
.getSelectedObject(
|
||||
state);
|
||||
.getSelectedObject(state);
|
||||
|
||||
final boolean canDelete = permissionChecker.isPermitted(
|
||||
ItemPrivileges.DELETE, folder);
|
||||
|
|
@ -258,79 +239,6 @@ public class FolderBrowser extends Table {
|
|||
return (String) state.getValue(atozFilterParameter);
|
||||
}
|
||||
|
||||
// private class FolderTableModelBuilder
|
||||
// extends AbstractTableModelBuilder
|
||||
// implements PaginationModelBuilder,
|
||||
// FolderManipulator.FilterFormModelBuilder {
|
||||
//
|
||||
// private final FolderSelectionModel folderModel;
|
||||
// private final FolderBrowser folderBrowser;
|
||||
//// private final ContentItemRepository itemRepo;
|
||||
//// private final ConfigurationManager confManager;
|
||||
//// private final ContentSectionManager sectionManager;
|
||||
// final FolderBrowserController controller;
|
||||
//
|
||||
// public FolderTableModelBuilder(final FolderSelectionModel folderModel) {
|
||||
// this(folderModel, null);
|
||||
// }
|
||||
//
|
||||
// public FolderTableModelBuilder(final FolderSelectionModel folderModel,
|
||||
// final FolderBrowser folderBrowser) {
|
||||
// this.folderModel = folderModel;
|
||||
// this.folderBrowser = folderBrowser;
|
||||
// final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
// controller = cdiUtil.findBean(FolderBrowserController.class);
|
||||
//// itemRepo = cdiUtil.findBean(ContentItemRepository.class);
|
||||
//// confManager = cdiUtil.findBean(ConfigurationManager.class);
|
||||
//// sectionManager = cdiUtil.findBean(ContentSectionManager.class);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public TableModel makeModel(final Table table, final PageState state) {
|
||||
// final FolderSelectionModel folderSelectionModel
|
||||
// = getFolderSelectionModel();
|
||||
// final Folder folder = folderSelectionModel.getSelectedObject(state);
|
||||
// if (folder == null) {
|
||||
// return Table.EMPTY_MODEL;
|
||||
// } else {
|
||||
// table.getRowSelectionModel().clearSelection(state);
|
||||
// final List<Folder> subFolders = folder.getSubFolders();
|
||||
// final List<ContentItem> items = folder.getObjects()
|
||||
// .stream()
|
||||
// .map(categorization -> categorization.getCategorizedObject())
|
||||
// .filter(object -> object instanceof ContentItem)
|
||||
// .map(object -> (ContentItem) object)
|
||||
// .collect(Collectors.toList());
|
||||
//
|
||||
// final List<CcmObject> objects = new ArrayList<>();
|
||||
// objects.addAll(subFolders);
|
||||
// objects.addAll(items);
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int getTotalSize(final Paginator paginator,
|
||||
// final PageState state) {
|
||||
// throw new UnsupportedOperationException();
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean isVisible(final PageState state) {
|
||||
// return folderBrowser != null && folderBrowser.isVisible(state);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public long getFolderSize(final PageState state) {
|
||||
// throw new UnsupportedOperationException();
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
private class HeaderCellRenderer
|
||||
extends com.arsdigita.cms.ui.util.DefaultTableCellRenderer {
|
||||
|
||||
|
|
@ -420,11 +328,6 @@ public class FolderBrowser extends Table {
|
|||
final int row,
|
||||
final int column) {
|
||||
|
||||
// final ContentItem item = (ContentItem) value;
|
||||
// final String name = item.getDisplayName();
|
||||
// final ContentSection section = item.getContentType().
|
||||
// getContentSection();
|
||||
final long itemId = (long) key;
|
||||
final String name = (String) value;
|
||||
final ContentSection section = CMS.getContext().getContentSection();
|
||||
final ContentSectionManager sectionManager = CdiUtil.createCdiUtil()
|
||||
|
|
@ -432,20 +335,26 @@ public class FolderBrowser extends Table {
|
|||
final ItemResolver itemResolver = sectionManager.getItemResolver(
|
||||
section);
|
||||
|
||||
return new Link(name,
|
||||
final boolean isFolder = ((FolderBrowserTableModel) table
|
||||
.getTableModel(state)).isFolder();
|
||||
|
||||
if (isFolder) {
|
||||
//return new ControlLink(new Text(name));
|
||||
return super.getComponent(table,
|
||||
state,
|
||||
value,
|
||||
isSelected,
|
||||
key,
|
||||
row,
|
||||
column);
|
||||
} else {
|
||||
return new Link(new Text(name),
|
||||
itemResolver.generateItemURL(state,
|
||||
itemId,
|
||||
(long) key,
|
||||
name,
|
||||
section,
|
||||
"DRAFT"));
|
||||
// return new Link(name,
|
||||
// itemResolver.generateItemURL(
|
||||
// state,
|
||||
// item.getObjectId(),
|
||||
// name,
|
||||
// section,
|
||||
// item.getVersion().name()));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -510,7 +419,8 @@ public class FolderBrowser extends Table {
|
|||
final List<Locale> availableLocales = (List<Locale>) value;
|
||||
availableLocales.forEach(locale -> container.add(new Link(
|
||||
new Text(locale.toString()),
|
||||
itemResolver.generateItemURL(state,
|
||||
itemResolver.generateItemURL(
|
||||
state,
|
||||
(long) key,
|
||||
locale.toString(),
|
||||
section,
|
||||
|
|
@ -765,11 +675,10 @@ public class FolderBrowser extends Table {
|
|||
return;
|
||||
}
|
||||
final String key = (String) event.getRowKey();
|
||||
if (key.startsWith("-")) { // XXX dirty dirty
|
||||
|
||||
clearSelection(state);
|
||||
getFolderSelectionModel().setSelectedKey(
|
||||
state, Long.parseLong(key.substring(1)));
|
||||
}
|
||||
getFolderSelectionModel().setSelectedKey(state, Long.parseLong(key));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -299,6 +299,7 @@ public class FolderBrowserController {
|
|||
} else {
|
||||
row.setTitle(folder.getTitle().getValue(defaultLocale));
|
||||
}
|
||||
row.setFolder(true);
|
||||
} else if (object instanceof ContentItem) {
|
||||
final ContentItem item = (ContentItem) object;
|
||||
row.setObjectId(item.getObjectId());
|
||||
|
|
@ -320,6 +321,7 @@ public class FolderBrowserController {
|
|||
final ContentTypeInfo typeInfo = typesManager.getContentTypeInfo(type);
|
||||
row.setTypeLabelBundle(typeInfo.getLabelBundle());
|
||||
row.setTypeLabelKey(typeInfo.getLabelKey());
|
||||
row.setFolder(false);
|
||||
} else {
|
||||
row.setObjectId(object.getObjectId());
|
||||
row.setObjectUuid(object.getUuid());
|
||||
|
|
@ -327,6 +329,7 @@ public class FolderBrowserController {
|
|||
row.setLanguages(Collections.emptyList());
|
||||
final LocalizedString title = new LocalizedString();
|
||||
title.addValue(globalizationHelper.getNegotiatedLocale(), "???");
|
||||
row.setFolder(false);
|
||||
}
|
||||
|
||||
return row;
|
||||
|
|
|
|||
|
|
@ -99,7 +99,16 @@ class FolderBrowserTableModel implements TableModel {
|
|||
|
||||
@Override
|
||||
public Object getKeyAt(final int columnIndex) {
|
||||
// if (currentRow.isFolder()) {
|
||||
// return String.format("folder-%d", currentRow.getObjectId());
|
||||
// } else {
|
||||
// return String.format("item-%d", currentRow.getObjectId());
|
||||
// }
|
||||
return currentRow.getObjectId();
|
||||
}
|
||||
|
||||
public boolean isFolder() {
|
||||
return currentRow.isFolder();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
package com.arsdigita.cms.ui.folder;
|
||||
|
||||
import org.libreccm.l10n.LocalizedString;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
|
|
@ -41,6 +40,7 @@ class FolderBrowserTableRow {
|
|||
private Date created;
|
||||
private Date lastModified;
|
||||
private boolean deletable;
|
||||
private boolean folder;
|
||||
|
||||
public long getObjectId() {
|
||||
return objectId;
|
||||
|
|
@ -138,4 +138,12 @@ class FolderBrowserTableRow {
|
|||
this.deletable = deletable;
|
||||
}
|
||||
|
||||
public boolean isFolder() {
|
||||
return folder;
|
||||
}
|
||||
|
||||
protected void setFolder(final boolean folder) {
|
||||
this.folder = folder;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,6 +58,11 @@ public class FolderSelectionModel extends CcmObjectSelectionModel<Folder> {
|
|||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSelectedKey(final PageState state, final Long key) {
|
||||
super.setSelectedKey(state, key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear the selection by resetting it to the root folder id.
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue