parent
008f57ca16
commit
81a6e93ddb
|
|
@ -150,15 +150,12 @@ public class ContentSectionController {
|
|||
ItemPrivileges.EDIT, section.getRootDocumentsFolder()
|
||||
)) {
|
||||
contentSectionModel.setSection(section);
|
||||
LOGGER.info("Checked in permisisons in {} ms.", System
|
||||
.currentTimeMillis() - permissionCheckStart);
|
||||
LOGGER.info(
|
||||
"Checked in permisisons in {} ms.",
|
||||
System.currentTimeMillis() - permissionCheckStart
|
||||
);
|
||||
|
||||
final long objectsStart = System.currentTimeMillis();
|
||||
// final List<CcmObject> objects = folderRepo
|
||||
// .findObjectsInFolder(
|
||||
// section.getRootDocumentsFolder(), firstResult,
|
||||
// maxResults
|
||||
// );
|
||||
final List<DocumentFolderEntry> folderEntries = folderRepo
|
||||
.getDocumentFolderEntries(
|
||||
section.getRootDocumentsFolder(),
|
||||
|
|
@ -166,11 +163,11 @@ public class ContentSectionController {
|
|||
maxResults,
|
||||
""
|
||||
);
|
||||
LOGGER.info("Retrieved objects in {} ms", System
|
||||
.currentTimeMillis() - objectsStart);
|
||||
LOGGER.info(
|
||||
"Retrieved objects in {} ms",
|
||||
System.currentTimeMillis() - objectsStart
|
||||
);
|
||||
documentFolderModel.setCount(
|
||||
// folderRepo
|
||||
// .countObjectsInFolder(section.getRootDocumentsFolder())
|
||||
folderRepo.countDocumentFolderEntries(
|
||||
section.getRootDocumentsFolder(), ""
|
||||
)
|
||||
|
|
@ -183,12 +180,6 @@ public class ContentSectionController {
|
|||
);
|
||||
|
||||
final long rowsStart = System.currentTimeMillis();
|
||||
// documentFolderModel.setRows(
|
||||
// objects
|
||||
// .stream()
|
||||
// .map(object -> buildRowModel(section, object))
|
||||
// .collect(Collectors.toList())
|
||||
// );
|
||||
documentFolderModel.setRows(
|
||||
folderEntries
|
||||
.stream()
|
||||
|
|
@ -320,7 +311,7 @@ public class ContentSectionController {
|
|||
.folderIsDeletable(folder)
|
||||
== FolderManager.FolderIsDeletable.YES
|
||||
);
|
||||
row.setIsFolder(true);
|
||||
row.setFolder(true);
|
||||
row.setLanguages(Collections.emptySortedSet());
|
||||
row.setLastEditPublished(false);
|
||||
row.setLastEdited("");
|
||||
|
|
@ -348,7 +339,7 @@ public class ContentSectionController {
|
|||
)
|
||||
);
|
||||
row.setDeletable(!itemManager.isLive(contentItem));
|
||||
row.setIsFolder(false);
|
||||
row.setFolder(false);
|
||||
row.setLanguages(
|
||||
new TreeSet<>(
|
||||
itemL10NManager
|
||||
|
|
|
|||
|
|
@ -53,6 +53,14 @@ public class DocumentFolderModel {
|
|||
this.maxResults = maxResults;
|
||||
}
|
||||
|
||||
public long getNumberOfPages() {
|
||||
return (long) Math.ceil((double) count / maxResults);
|
||||
}
|
||||
|
||||
public long getCurrentPage() {
|
||||
return (long) Math.ceil((double) firstResult / maxResults ) + 1;
|
||||
}
|
||||
|
||||
public List<DocumentFolderRowModel> getRows() {
|
||||
return Collections.unmodifiableList(rows);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public class DocumentFolderRowModel {
|
|||
|
||||
private boolean deletable;
|
||||
|
||||
private boolean isFolder;
|
||||
private boolean folder;
|
||||
|
||||
private SortedSet<String> languages;
|
||||
|
||||
|
|
@ -50,12 +50,12 @@ public class DocumentFolderRowModel {
|
|||
this.deletable = deletable;
|
||||
}
|
||||
|
||||
public boolean isIsFolder() {
|
||||
return isFolder;
|
||||
public boolean isFolder() {
|
||||
return folder;
|
||||
}
|
||||
|
||||
protected void setIsFolder(final boolean isFolder) {
|
||||
this.isFolder = isFolder;
|
||||
protected void setFolder(final boolean folder) {
|
||||
this.folder = folder;
|
||||
}
|
||||
|
||||
public SortedSet<String> getLanguages() {
|
||||
|
|
|
|||
|
|
@ -18,50 +18,9 @@
|
|||
<div class="container-fluid">
|
||||
<h1>#{CmsAdminMessages.getMessage("contentsection.documentfolder.heading", [ContentSectionModel.sectionName])}</h1>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<nav class="col-sm-3 documentfolder">
|
||||
<!-- <ul class="nav flex-column border">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Folder 1</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<div class="d-flex">
|
||||
<button class="btn btn-light pr-0 subfolders-toggler"
|
||||
data-toggle="collapse"
|
||||
data-target="#folder-2-subfolders"
|
||||
aria-expanded="false"
|
||||
aria-controls="folder-2-subfolders"
|
||||
type="button">
|
||||
<bootstrap:svgIcon icon="caret-right-fill" />
|
||||
<span class="sr-only">
|
||||
#{CmsAdminMessages['contentsection.documentfolder.foldersnav.subfolders.expand']}
|
||||
</span>
|
||||
</button>
|
||||
<a class="nav-link pl-0" href="#">Folder 2</a>
|
||||
</div>
|
||||
<ul class="nav flex-column collapse"
|
||||
id="folder-2-subfolders">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Folder 2-1</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Folder 2-2</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Folder 2-3</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Folder 3</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Folder 4</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Folder 5</a>
|
||||
</li>
|
||||
</ul>-->
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
<a class="" href="#">Folder 1</a>
|
||||
|
|
@ -106,6 +65,11 @@
|
|||
</ul>
|
||||
</nav>
|
||||
<div class="col-sm-9">
|
||||
<div class="d-flex">
|
||||
<p>
|
||||
${CmsAdminMessages.getMessage("contentsection.documentfolder.pageof", [DocumentFolderModel.currentPage, DocumentFolderModel.numberOfPages, DocumentFolderModel.maxResults, DocumentFolderModel.count])}
|
||||
</p>
|
||||
</div>
|
||||
<table class="table table-hover documentfolder">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
|
|
@ -142,8 +106,9 @@
|
|||
</td>
|
||||
<td>#{row.title}</td>
|
||||
<td>#{row.type}</td>
|
||||
<td>#{row.created}</td>
|
||||
<td><c:if test="#{!row.folder}">#{row.created}</c:if></td>
|
||||
<td>
|
||||
<c:if test="#{!row.folder}">
|
||||
<span>#{row.lastEdited}</span>
|
||||
<c:if test="#{row.lastEdited != null}">
|
||||
<c:choose>
|
||||
|
|
@ -161,90 +126,69 @@
|
|||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:if>
|
||||
</c:if>
|
||||
</td>
|
||||
<td>
|
||||
<c:if test="#{row.deletable}">
|
||||
|
||||
<button class="btn btn-danger">
|
||||
<bootstrap:svgIcon icon="x-circle" />
|
||||
<span>${CmsAdminMessages['contentsection.documentfolder.actions.delete.button.label']}</span>
|
||||
</button>
|
||||
</c:if>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<!-- <tr>
|
||||
<td><a href="#">folder-1</a></td>
|
||||
<td></td>
|
||||
<td>Folder 1</td>
|
||||
<td>Ordner</td>
|
||||
<td>2021-01-20 08:59</td>
|
||||
<td>2021-01-20 08:59</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="#">an-item</a></td>
|
||||
<td>de, en</td>
|
||||
<td>An item</td>
|
||||
<td>Article</td>
|
||||
<td>2021-01-20 09:03</td>
|
||||
<td>
|
||||
<span>2021-01-20 10:11</span>
|
||||
<span aria-describedby="an-item-publication-state-desc">
|
||||
<bootstrap:svgIcon icon="eye" />
|
||||
</span>
|
||||
<span class="sr-only" id="an-item-publication-state-desc">#{CmsAdminMessages['contentsection.documentfolder.cols.lastedit.published']}</span>
|
||||
</td>
|
||||
<td>
|
||||
<button class="btn btn-danger"
|
||||
type="button">
|
||||
<bootstrap:svgIcon icon="x-circle" />
|
||||
<span>#{CmsAdminMessages['contentsection.documentfolder.actions.delete.button.label']}</span>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="#">unpublished-item</a></td>
|
||||
<td>de, en</td>
|
||||
<td>Unppublished item item</td>
|
||||
<td>Article</td>
|
||||
<td>2021-01-20 10:31</td>
|
||||
<td>
|
||||
<span>2021-01-20 10:34</span>
|
||||
<span aria-describedby="unpublished-item-publication-state-desc">
|
||||
<bootstrap:svgIcon icon="eye-slash" />
|
||||
</span>
|
||||
<span class="sr-only" id="unpublished-item-publication-state-desc">#{CmsAdminMessages['contentsection.documentfolder.cols.lastedit.unpublished']}</span>
|
||||
</td>
|
||||
<td>
|
||||
<button class="btn btn-danger"
|
||||
type="button">
|
||||
<bootstrap:svgIcon icon="x-circle" />
|
||||
<span>#{CmsAdminMessages['contentsection.documentfolder.actions.delete.button.label']}</span>
|
||||
</button>
|
||||
</td>
|
||||
</tr>-->
|
||||
</tbody>
|
||||
</table>
|
||||
<nav aria-label="#{CmsAdminMessages['contentsection.documentfolder.pagination.label']}">
|
||||
<ul class="justify-content-center pagination">
|
||||
<li class="page-item disabled" tabindex="-1" aria-disabled="true">
|
||||
<a class="page-link" href="#">
|
||||
<c:choose>
|
||||
<c:when test="${DocumentFolderModel.currentPage gt 1}">
|
||||
<li class="page-item">
|
||||
<a class="page-link"
|
||||
href="?firstResult=#{(DocumentFolderModel.currentPage - 1) * DocumentFolderModel.maxResults}&maxResults=${DocumentFolderModel.maxResults}">
|
||||
<bootstrap:svgIcon icon="caret-left" />
|
||||
<span class="sr-only">#{CmsAdminMessages['contentsection.documentfolder.pagination.previous_page']}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="page-link" href="#">1</a>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<li class="page-item disabled" tabindex="-1" aria-disabled="true">
|
||||
<a class="page-link"
|
||||
href="#">
|
||||
<bootstrap:svgIcon icon="caret-left" />
|
||||
<span class="sr-only">#{CmsAdminMessages['contentsection.documentfolder.pagination.previous_page']}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="page-link" href="#">2</a>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<c:forEach begin="1"
|
||||
end="${DocumentFolderModel.numberOfPages}"
|
||||
var="page">
|
||||
<li class="page-item ${page == DocumentFolderModel.currentPage ? 'active' : ''}">
|
||||
<a class="page-link"
|
||||
href="?firstResult=#{(page - 1) * DocumentFolderModel.maxResults}&maxResults=${DocumentFolderModel.maxResults}">${page}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="page-link" href="#">3</a>
|
||||
</c:forEach>
|
||||
<c:choose>
|
||||
<c:when test="#{DocumentFolderModel.currentPage lt (DocumentFolderModel.numberOfPages)}">
|
||||
<li class="page-item">
|
||||
<a class="page-link"
|
||||
href="?firstResult=${(DocumentFolderModel.currentPage + 1) * DocumentFolderModel.maxResults}&maxResults=${DocumentFolderModel.maxResults}">
|
||||
<bootstrap:svgIcon icon="caret-right" />
|
||||
<span class="sr-only">#{CmsAdminMessages['contentsection.documentfolder.pagination.next_page']}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<li class="page-item disabled" tabindex="-1" aria-disabled="true">
|
||||
<a class="page-link" href="#">
|
||||
<bootstrap:svgIcon icon="caret-right" />
|
||||
<span class="sr-only">#{CmsAdminMessages['contentsection.documentfolder.pagination.next_page']}</span>
|
||||
</a>
|
||||
</li>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -44,3 +44,4 @@ contentsection.documentfolder.pagination.next_page=Next page
|
|||
contentsection.not_found=No content section identifed by {0} available.
|
||||
contentsection.accessdenied=Your are not permitted to access content section {0}.
|
||||
contentsection.documentfolder.types.folder=Folder
|
||||
contentsection.documentfolder.pageof=Page {0} of {1}. Showing max. {2} of {3} documents per page.
|
||||
|
|
|
|||
|
|
@ -44,3 +44,4 @@ contentsection.documentfolder.pagination.next_page=Eine Seite weiter
|
|||
contentsection.not_found=Keine Content Section mit dem Identifier {0} gefunden.
|
||||
contentsection.accessdenied=Sind sind nicht berechtigt auf die Content Section {0} zuzugreifen.
|
||||
contentsection.documentfolder.types.folder=Ordner
|
||||
contentsection.documentfolder.pageof=Seite {0} von {1}. Zeige max. {2} von {3} Dokumenten pro Seite.
|
||||
|
|
|
|||
Loading…
Reference in New Issue