Search in sources :

Example 6 with VFSLeafFilter

use of org.olat.core.util.vfs.filters.VFSLeafFilter in project OpenOLAT by OpenOLAT.

the class WikiManager method deleteWikiPage.

/**
 * delete a page completely by removing from the file system
 *
 * @param ores
 * @param page
 */
protected void deleteWikiPage(OLATResourceable ores, WikiPage page) {
    String name = page.getPageName();
    // do not delete default pages
    if (name.equals(WikiPage.WIKI_INDEX_PAGE) || name.equals(WikiPage.WIKI_MENU_PAGE))
        return;
    VFSContainer wikiContentContainer = getWikiContainer(ores, WIKI_RESOURCE_FOLDER_NAME);
    VFSContainer versionsContainer = getWikiContainer(ores, VERSION_FOLDER_NAME);
    // delete content and property file
    VFSItem item = wikiContentContainer.resolve(page.getPageId() + "." + WIKI_FILE_SUFFIX);
    if (item != null)
        item.delete();
    item = wikiContentContainer.resolve(page.getPageId() + "." + WIKI_PROPERTIES_SUFFIX);
    if (item != null)
        item.delete();
    // delete all version files of the page
    List<VFSItem> leafs = versionsContainer.getItems(new VFSLeafFilter());
    if (leafs.size() > 0) {
        for (Iterator<VFSItem> iter = leafs.iterator(); iter.hasNext(); ) {
            VFSLeaf leaf = (VFSLeaf) iter.next();
            String filename = leaf.getName();
            if (filename.startsWith(page.getPageId())) {
                leaf.delete();
            }
        }
    }
    log.audit("Deleted wiki page with name: " + page.getPageName() + " from resourcable id: " + ores.getResourceableId());
    if (wikiCache != null) {
        wikiCache.update(OresHelper.createStringRepresenting(ores), getOrLoadWiki(ores));
    }
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) VFSContainer(org.olat.core.util.vfs.VFSContainer) VFSItem(org.olat.core.util.vfs.VFSItem) VFSLeafFilter(org.olat.core.util.vfs.filters.VFSLeafFilter)

Example 7 with VFSLeafFilter

use of org.olat.core.util.vfs.filters.VFSLeafFilter in project OpenOLAT by OpenOLAT.

the class Wiki method getHistory.

protected List<WikiPage> getHistory(WikiPage page) {
    List<WikiPage> versions = new ArrayList<>();
    List<VFSItem> leafs = versionsContainer.getItems(new VFSLeafFilter());
    if (leafs.size() > 0) {
        for (Iterator<VFSItem> iter = leafs.iterator(); iter.hasNext(); ) {
            VFSLeaf leaf = (VFSLeaf) iter.next();
            String filename = leaf.getName();
            // try this: List leafs = wikiCont.getItems(new VFSItemSuffixFilter(new String[]{WikiManager.WIKI_PROPERTIES_SUFFIX}));
            if (filename.indexOf(WikiManager.WIKI_PROPERTIES_SUFFIX) != -1 && filename.startsWith(page.getPageId())) {
                versions.add(assignPropertiesToPage(leaf));
            }
        }
    // add also the current version but only if saved once
    }
    if (page.getModificationTime() > 0)
        versions.add(page);
    return versions;
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) ArrayList(java.util.ArrayList) VFSItem(org.olat.core.util.vfs.VFSItem) VFSLeafFilter(org.olat.core.util.vfs.filters.VFSLeafFilter)

Example 8 with VFSLeafFilter

use of org.olat.core.util.vfs.filters.VFSLeafFilter in project OpenOLAT by OpenOLAT.

the class DialogElementListController method doFileDelivery.

/**
 * deliver the selected file and show in a popup
 *
 * @param ureq
 * @param command
 */
private void doFileDelivery(UserRequest ureq, DialogElement element) {
    VFSContainer forumContainer = dialogElementsManager.getDialogContainer(element);
    List<VFSItem> items = forumContainer.getItems(new VFSLeafFilter());
    if (items.size() > 0 && items.get(0) instanceof VFSLeaf) {
        VFSLeaf vl = (VFSLeaf) items.get(0);
        ureq.getDispatchResult().setResultingMediaResource(new VFSMediaResource(vl));
        ThreadLocalUserActivityLogger.log(CourseLoggingAction.DIALOG_ELEMENT_FILE_DOWNLOADED, getClass(), LoggingResourceable.wrapBCFile(vl.getName()));
    } else {
        logError("No file to discuss: " + forumContainer, null);
    }
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) VFSContainer(org.olat.core.util.vfs.VFSContainer) VFSItem(org.olat.core.util.vfs.VFSItem) VFSLeafFilter(org.olat.core.util.vfs.filters.VFSLeafFilter) VFSMediaResource(org.olat.core.util.vfs.VFSMediaResource)

Example 9 with VFSLeafFilter

use of org.olat.core.util.vfs.filters.VFSLeafFilter in project OpenOLAT by OpenOLAT.

the class DialogCourseNode method doArchiveElement.

/**
 * Archive a single dialog element with files and forum
 * @param element
 * @param exportDirectory
 */
public void doArchiveElement(DialogElement element, ZipOutputStream exportStream, Locale locale) {
    DialogElementsManager depm = CoreSpringFactory.getImpl(DialogElementsManager.class);
    String exportDirName = Formatter.makeStringFilesystemSave(getShortTitle()) + "_" + element.getForum().getKey() + "_" + Formatter.formatDatetimeFilesystemSave(new Date());
    VFSContainer forumContainer = depm.getDialogContainer(element);
    for (VFSItem item : forumContainer.getItems(new VFSLeafFilter())) {
        ZipUtil.addToZip(item, exportDirName, exportStream);
    }
    ForumArchiveManager fam = ForumArchiveManager.getInstance();
    ForumFormatter ff = new ForumStreamedRTFFormatter(exportStream, exportDirName, false, locale);
    fam.applyFormatter(ff, element.getForum().getKey(), null);
}
Also used : ForumFormatter(org.olat.modules.fo.archiver.formatters.ForumFormatter) ForumStreamedRTFFormatter(org.olat.modules.fo.archiver.formatters.ForumStreamedRTFFormatter) ForumArchiveManager(org.olat.modules.fo.archiver.ForumArchiveManager) VFSContainer(org.olat.core.util.vfs.VFSContainer) VFSItem(org.olat.core.util.vfs.VFSItem) DialogElementsManager(org.olat.course.nodes.dialog.DialogElementsManager) Date(java.util.Date) VFSLeafFilter(org.olat.core.util.vfs.filters.VFSLeafFilter)

Example 10 with VFSLeafFilter

use of org.olat.core.util.vfs.filters.VFSLeafFilter in project openolat by klemens.

the class WikiManager method deleteWikiPage.

/**
 * delete a page completely by removing from the file system
 *
 * @param ores
 * @param page
 */
protected void deleteWikiPage(OLATResourceable ores, WikiPage page) {
    String name = page.getPageName();
    // do not delete default pages
    if (name.equals(WikiPage.WIKI_INDEX_PAGE) || name.equals(WikiPage.WIKI_MENU_PAGE))
        return;
    VFSContainer wikiContentContainer = getWikiContainer(ores, WIKI_RESOURCE_FOLDER_NAME);
    VFSContainer versionsContainer = getWikiContainer(ores, VERSION_FOLDER_NAME);
    // delete content and property file
    VFSItem item = wikiContentContainer.resolve(page.getPageId() + "." + WIKI_FILE_SUFFIX);
    if (item != null)
        item.delete();
    item = wikiContentContainer.resolve(page.getPageId() + "." + WIKI_PROPERTIES_SUFFIX);
    if (item != null)
        item.delete();
    // delete all version files of the page
    List<VFSItem> leafs = versionsContainer.getItems(new VFSLeafFilter());
    if (leafs.size() > 0) {
        for (Iterator<VFSItem> iter = leafs.iterator(); iter.hasNext(); ) {
            VFSLeaf leaf = (VFSLeaf) iter.next();
            String filename = leaf.getName();
            if (filename.startsWith(page.getPageId())) {
                leaf.delete();
            }
        }
    }
    log.audit("Deleted wiki page with name: " + page.getPageName() + " from resourcable id: " + ores.getResourceableId());
    if (wikiCache != null) {
        wikiCache.update(OresHelper.createStringRepresenting(ores), getOrLoadWiki(ores));
    }
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) VFSContainer(org.olat.core.util.vfs.VFSContainer) VFSItem(org.olat.core.util.vfs.VFSItem) VFSLeafFilter(org.olat.core.util.vfs.filters.VFSLeafFilter)

Aggregations

VFSLeafFilter (org.olat.core.util.vfs.filters.VFSLeafFilter)14 VFSContainer (org.olat.core.util.vfs.VFSContainer)12 VFSItem (org.olat.core.util.vfs.VFSItem)12 VFSLeaf (org.olat.core.util.vfs.VFSLeaf)10 DialogElementsManager (org.olat.course.nodes.dialog.DialogElementsManager)6 ArrayList (java.util.ArrayList)4 Date (java.util.Date)4 ForumArchiveManager (org.olat.modules.fo.archiver.ForumArchiveManager)4 ForumFormatter (org.olat.modules.fo.archiver.formatters.ForumFormatter)4 IOException (java.io.IOException)2 HashSet (java.util.HashSet)2 Document (org.apache.lucene.document.Document)2 LocalFolderImpl (org.olat.core.util.vfs.LocalFolderImpl)2 VFSMediaResource (org.olat.core.util.vfs.VFSMediaResource)2 FullAccessCallback (org.olat.core.util.vfs.callbacks.FullAccessCallback)2 VFSItemSuffixFilter (org.olat.core.util.vfs.filters.VFSItemSuffixFilter)2 ForumRTFFormatter (org.olat.modules.fo.archiver.formatters.ForumRTFFormatter)2 ForumStreamedRTFFormatter (org.olat.modules.fo.archiver.formatters.ForumStreamedRTFFormatter)2 CourseNodeDocument (org.olat.search.service.document.CourseNodeDocument)2 ForumMessageDocument (org.olat.search.service.document.ForumMessageDocument)2