%
/**
* Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
%>
<%
int assetOrder = ParamUtil.getInteger(request, "assetOrder", -1);
long folderId = ParamUtil.getLong(request, "assetParentId", DLFolderConstants.DEFAULT_PARENT_FOLDER_ID);
DLFolder folder = null;
if (folderId > 0) {
try {
folder = DLFolderLocalServiceUtil.getFolder(folderId);
}
catch (com.liferay.portlet.documentlibrary.NoSuchFolderException nsfe) {
}
}
List folderIdLists = new ArrayList();
folderIdLists.add(new Long(folderId));
DLFolderLocalServiceUtil.getSubfolderIds(folderIdLists, scopeGroupId, folderId);
String folderIds = ParamUtil.getString(request, "folderIds");
long[] folderIdsArray = StringUtil.split(folderIds, 0L);
String keywords = ParamUtil.getString(request, "keywords");
PortletURL portletURL = renderResponse.createRenderURL();
portletURL.setParameter("struts_action", "/portlet_configuration/edit_configuration");
portletURL.setParameter("redirect", redirect);
portletURL.setParameter("backURL", redirect);
portletURL.setParameter("portletResource", portletResource);
portletURL.setParameter("typeSelection", DLFileEntry.class.getName());
portletURL.setParameter("assetParentId", String.valueOf(folderId));
%>
<%= getBreadcrumbs(folder, null, pageContext, renderRequest, renderResponse, portletResource, redirect) %>
<%
List headerNames = new ArrayList();
headerNames.add("folder");
headerNames.add("document");
headerNames.add("score");
SearchContainer searchContainer = new SearchContainer(renderRequest, null, null, SearchContainer.DEFAULT_CUR_PARAM, SearchContainer.DEFAULT_DELTA, portletURL, headerNames, LanguageUtil.format(pageContext, "no-documents-were-found-that-matched-the-keywords-x", "" + HtmlUtil.escape(keywords) + " "));
try {
Hits results = DLFolderLocalServiceUtil.search(company.getCompanyId(), scopeGroupId, themeDisplay.getUserId(), folderIdsArray, keywords, searchContainer.getStart(), searchContainer.getEnd());
int total = results.getLength();
searchContainer.setTotal(total);
List resultRows = searchContainer.getResultRows();
for (int i = 0; i < results.getDocs().length; i++) {
com.liferay.portal.kernel.search.Document doc = results.doc(i);
ResultRow row = new ResultRow(doc, i, i);
long entryFolderId = GetterUtil.getLong(doc.get("repositoryId"));
String fileName = doc.get("path");
DLFileEntry fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(entryFolderId, fileName);
fileEntry = fileEntry.toEscapedModel();
TagsAsset asset = TagsAssetLocalServiceUtil.getAsset(DLFileEntry.class.getName(), fileEntry.getFileEntryId());
StringBuilder sb = new StringBuilder();
sb.append("javascript: ");
sb.append(renderResponse.getNamespace());
sb.append("selectAsset('");
sb.append(asset.getAssetId());
sb.append("', '");
sb.append(asset.getAssetId());
sb.append("', '");
sb.append(UnicodeFormatter.toString(asset.getTitle()));
sb.append("', '");
sb.append(assetOrder);
sb.append("');");
String rowHREF = sb.toString();
// Folder and document
DLFolder entryFolder = DLFolderLocalServiceUtil.getFolder(entryFolderId);
entryFolder = entryFolder.toEscapedModel();
row.addText(entryFolder.getName(), rowHREF);
row.addText(fileEntry.getTitle(), rowHREF);
// Score
row.addScore(results.score(i));
// Add result row
resultRows.add(row);
}
}
catch (Exception e) {
}
%>
<%
List headerNames = new ArrayList();
headerNames.add("folder");
headerNames.add("num-of-folders");
headerNames.add("num-of-documents");
SearchContainer searchContainer = new SearchContainer(renderRequest, null, null, SearchContainer.DEFAULT_CUR_PARAM, SearchContainer.DEFAULT_DELTA, portletURL, headerNames, "there-are-no-folders");
int total = DLFolderLocalServiceUtil.getFoldersCount(scopeGroupId, folderId);
searchContainer.setTotal(total);
List results = DLFolderLocalServiceUtil.getFolders(scopeGroupId, folderId, searchContainer.getStart(), searchContainer.getEnd());
searchContainer.setResults(results);
List resultRows = searchContainer.getResultRows();
for (int i = 0; i < results.size(); i++) {
DLFolder curFolder = (DLFolder)results.get(i);
ResultRow row = new ResultRow(curFolder, curFolder.getFolderId(), i);
PortletURL rowURL = renderResponse.createRenderURL();
rowURL.setParameter("struts_action", "/portlet_configuration/edit_configuration");
rowURL.setParameter("redirect", redirect);
rowURL.setParameter("backURL", redirect);
rowURL.setParameter("portletResource", portletResource);
rowURL.setParameter("typeSelection", DLFileEntry.class.getName());
rowURL.setParameter("assetParentId", String.valueOf(curFolder.getFolderId()));
// Name
StringBuilder sb = new StringBuilder();
sb.append(" ");
sb.append("");
sb.append(curFolder.getName());
sb.append(" ");
if (Validator.isNotNull(curFolder.getDescription())) {
sb.append(" ");
sb.append(curFolder.getDescription());
}
row.addText(sb.toString(), rowURL);
// Statistics
List subfolderIds = new ArrayList();
subfolderIds.add(new Long(curFolder.getFolderId()));
DLFolderLocalServiceUtil.getSubfolderIds(subfolderIds, scopeGroupId, curFolder.getFolderId());
int foldersCount = subfolderIds.size() - 1;
int fileEntriesCount = DLFileEntryLocalServiceUtil.getFoldersFileEntriesCount(subfolderIds);
row.addText(String.valueOf(foldersCount), rowURL);
row.addText(String.valueOf(fileEntriesCount), rowURL);
// Add result row
resultRows.add(row);
}
%>
<%
headerNames.clear();
headerNames.add("document");
headerNames.add("size");
headerNames.add("downloads");
headerNames.add("locked");
searchContainer = new SearchContainer(renderRequest, null, null, "cur2", SearchContainer.DEFAULT_DELTA, portletURL, headerNames, "there-are-no-documents");
total = DLFileEntryLocalServiceUtil.getFileEntriesCount(folder.getFolderId());
searchContainer.setTotal(total);
results = DLFileEntryLocalServiceUtil.getFileEntries(folder.getFolderId(), searchContainer.getStart(), searchContainer.getEnd());
searchContainer.setResults(results);
resultRows = searchContainer.getResultRows();
for (int i = 0; i < results.size(); i++) {
DLFileEntry fileEntry = (DLFileEntry)results.get(i);
fileEntry = fileEntry.toEscapedModel();
ResultRow row = new ResultRow(fileEntry, fileEntry.getFileEntryId(), i);
TagsAsset asset = TagsAssetLocalServiceUtil.getAsset(DLFileEntry.class.getName(), fileEntry.getFileEntryId());
StringBuilder sb = new StringBuilder();
sb.append("javascript: ");
sb.append(renderResponse.getNamespace());
sb.append("selectAsset('");
sb.append(asset.getAssetId());
sb.append("', '");
sb.append(asset.getAssetId());
sb.append("', '");
sb.append(UnicodeFormatter.toString(asset.getTitle()));
sb.append("', '");
sb.append(assetOrder);
sb.append("');");
String rowHREF = sb.toString();
// Title and description
sb = new StringBuilder();
sb.append(" ");
sb.append(fileEntry.getTitle());
if (Validator.isNotNull(fileEntry.getDescription())) {
sb.append(" ");
sb.append(fileEntry.getDescription());
}
row.addText(sb.toString(), rowHREF);
// Statistics
row.addText(TextFormatter.formatKB(fileEntry.getSize(), locale) + "k", rowHREF);
row.addText(String.valueOf(fileEntry.getReadCount()), rowHREF);
// Locked
boolean isLocked = LockServiceUtil.isLocked(DLFileEntry.class.getName(), DLUtil.getLockId(fileEntry.getFolderId(), fileEntry.getName()));
row.addText(LanguageUtil.get(pageContext, isLocked ? "yes" : "no"), rowHREF);
// Add result row
resultRows.add(row);
}
%>
<%!
public static String getBreadcrumbs(DLFolder folder, DLFileEntry fileEntry, PageContext pageContext, RenderRequest req, RenderResponse res, String portletResource, String redirect) throws Exception {
if ((fileEntry != null) && (folder == null)) {
folder = fileEntry.getFolder();
}
PortletURL foldersURL = res.createRenderURL();
foldersURL.setParameter("struts_action", "/portlet_configuration/edit_configuration");
foldersURL.setParameter("redirect", redirect);
foldersURL.setParameter("backURL", redirect);
foldersURL.setParameter("portletResource", portletResource);
foldersURL.setParameter("typeSelection", DLFileEntry.class.getName());
String foldersLink = "" + LanguageUtil.get(pageContext, "folders") + " ";
if (folder == null) {
return foldersLink;
}
String breadcrumbs = StringPool.BLANK;
if (folder != null) {
for (int i = 0;; i++) {
PortletURL portletURL = res.createRenderURL();
portletURL.setParameter("struts_action", "/portlet_configuration/edit_configuration");
portletURL.setParameter("redirect", redirect);
portletURL.setParameter("backURL", redirect);
portletURL.setParameter("portletResource", portletResource);
portletURL.setParameter("typeSelection", DLFileEntry.class.getName());
portletURL.setParameter("assetParentId", String.valueOf(folder.getFolderId()));
String folderLink = "" + folder.getName() + " ";
if (i == 0) {
breadcrumbs = folderLink;
}
else {
breadcrumbs = folderLink + " » " + breadcrumbs;
}
if (folder.isRoot()) {
break;
}
folder = DLFolderLocalServiceUtil.getFolder(folder.getParentFolderId());
}
}
breadcrumbs = foldersLink + " » " + breadcrumbs;
return breadcrumbs;
}
%>