Search in sources :

Example 6 with DialogElement

use of org.olat.course.nodes.dialog.DialogElement in project OpenOLAT by OpenOLAT.

the class DialogElementListController method loadModel.

protected void loadModel() {
    RepositoryEntry entry = userCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
    List<DialogElement> elements = dialogElementsManager.getDialogElements(entry, courseNode.getIdent());
    List<DialogElementRow> rows = new ArrayList<>(elements.size());
    for (DialogElement element : elements) {
        DialogElementRow row = new DialogElementRow(element, userPropertyHandlers, getLocale());
        int msgCount = forumManager.countMessagesByForumID(element.getForum().getKey());
        int newMsg = msgCount - forumManager.countReadMessagesByUserAndForum(getIdentity(), element.getForum().getKey());
        row.setNumOfMessages(msgCount);
        row.setNumOfUnreadMessages(newMsg);
        VFSLeaf item = dialogElementsManager.getDialogLeaf(element);
        if (item != null) {
            DownloadLink downloadLink = uifactory.addDownloadLink("file_" + (++counter), row.getFilename(), null, item, flc);
            row.setDownloadLink(downloadLink);
        }
        rows.add(row);
    }
    tableModel.setObjects(rows);
    tableEl.reset(true, true, true);
}
Also used : DownloadLink(org.olat.core.gui.components.form.flexible.elements.DownloadLink) VFSLeaf(org.olat.core.util.vfs.VFSLeaf) ArrayList(java.util.ArrayList) DialogElement(org.olat.course.nodes.dialog.DialogElement) RepositoryEntry(org.olat.repository.RepositoryEntry)

Example 7 with DialogElement

use of org.olat.course.nodes.dialog.DialogElement in project OpenOLAT by OpenOLAT.

the class DialogElementListController method doDelete.

private void doDelete(DialogElementRow rowToDelete) {
    DialogElement elementToDelete = dialogElementsManager.getDialogElementByKey(rowToDelete.getDialogElementKey());
    // archive data to personal folder
    File exportDir = CourseFactory.getOrCreateDataExportDirectory(getIdentity(), courseNode.getShortTitle());
    courseNode.doArchiveElement(elementToDelete, exportDir, getLocale());
    dialogElementsManager.deleteDialogElement(elementToDelete);
    // do logging
    ThreadLocalUserActivityLogger.log(CourseLoggingAction.DIALOG_ELEMENT_FILE_DELETED, getClass(), LoggingResourceable.wrapUploadFile(elementToDelete.getFilename()));
}
Also used : DialogElement(org.olat.course.nodes.dialog.DialogElement) File(java.io.File)

Example 8 with DialogElement

use of org.olat.course.nodes.dialog.DialogElement in project openolat by klemens.

the class DialogCourseNodeRunController method doCopySelectedFile.

private void doCopySelectedFile(String fileUrl) {
    VFSContainer courseContainer = userCourseEnv.getCourseEnvironment().getCourseFolderContainer();
    VFSLeaf vl = (VFSLeaf) courseContainer.resolve(fileUrl);
    DialogElement newElement = dialogElmsMgr.createDialogElement(entry, getIdentity(), vl.getName(), vl.getSize(), courseNode.getIdent());
    // copy file
    VFSContainer dialogContainer = dialogElmsMgr.getDialogContainer(newElement);
    VFSLeaf copyVl = dialogContainer.createChildLeaf(vl.getName());
    if (copyVl == null) {
        copyVl = (VFSLeaf) dialogContainer.resolve(vl.getName());
    }
    VFSManager.copyContent(vl, copyVl);
    // inform subscription manager about new element
    if (subsContext != null) {
        notificationsManager.markPublisherNews(subsContext, getIdentity(), true);
    }
    filesCtrl.loadModel();
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) VFSContainer(org.olat.core.util.vfs.VFSContainer) DialogElement(org.olat.course.nodes.dialog.DialogElement)

Example 9 with DialogElement

use of org.olat.course.nodes.dialog.DialogElement in project openolat by klemens.

the class DialogCourseNodeRunController method doFinalizeUploadFile.

private void doFinalizeUploadFile(VFSLeaf file) {
    // everything when well so save the property
    DialogElement element = dialogElmsMgr.createDialogElement(entry, getIdentity(), file.getName(), file.getSize(), courseNode.getIdent());
    VFSContainer dialogContainer = dialogElmsMgr.getDialogContainer(element);
    VFSManager.copyContent(file.getParentContainer(), dialogContainer);
    // inform subscription manager about new element
    if (subsContext != null) {
        notificationsManager.markPublisherNews(subsContext, getIdentity(), true);
    }
    filesCtrl.loadModel();
}
Also used : VFSContainer(org.olat.core.util.vfs.VFSContainer) DialogElement(org.olat.course.nodes.dialog.DialogElement)

Example 10 with DialogElement

use of org.olat.course.nodes.dialog.DialogElement in project openolat by klemens.

the class DialogElementListController method formInnerEvent.

@Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
    if (source == tableEl) {
        if (event instanceof SelectionEvent) {
            SelectionEvent se = (SelectionEvent) event;
            DialogElementRow row = tableModel.getObject(se.getIndex());
            if ("forum".equals(se.getCommand())) {
                fireEvent(ureq, new SelectRowEvent(row));
            } else if ("delete".equals(se.getCommand())) {
                doConfirmDelete(ureq, row);
            }
        }
    } else if (source instanceof FormLink) {
        FormLink link = (FormLink) source;
        String cmd = link.getCmd();
        if ("download".equals(cmd)) {
            doFileDelivery(ureq, (DialogElement) link.getUserObject());
        }
    }
    super.formInnerEvent(ureq, source, event);
}
Also used : SelectionEvent(org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent) DialogElement(org.olat.course.nodes.dialog.DialogElement) FormLink(org.olat.core.gui.components.form.flexible.elements.FormLink)

Aggregations

DialogElement (org.olat.course.nodes.dialog.DialogElement)36 RepositoryEntry (org.olat.repository.RepositoryEntry)14 Identity (org.olat.core.id.Identity)6 VFSContainer (org.olat.core.util.vfs.VFSContainer)6 VFSLeaf (org.olat.core.util.vfs.VFSLeaf)6 DialogElementsManager (org.olat.course.nodes.dialog.DialogElementsManager)6 Forum (org.olat.modules.fo.Forum)6 File (java.io.File)4 ArrayList (java.util.ArrayList)4 Test (org.junit.Test)4 SubscriptionContext (org.olat.core.commons.services.notifications.SubscriptionContext)4 DownloadLink (org.olat.core.gui.components.form.flexible.elements.DownloadLink)4 Date (java.util.Date)2 Document (org.apache.lucene.document.Document)2 Publisher (org.olat.core.commons.services.notifications.Publisher)2 SubscriptionInfo (org.olat.core.commons.services.notifications.SubscriptionInfo)2 SubscriptionListItem (org.olat.core.commons.services.notifications.model.SubscriptionListItem)2 TitleItem (org.olat.core.commons.services.notifications.model.TitleItem)2 FormLink (org.olat.core.gui.components.form.flexible.elements.FormLink)2 SelectionEvent (org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent)2