Search in sources :

Example 51 with Media

use of org.olat.modules.portfolio.Media in project openolat by klemens.

the class MediaCenterController method doOpenMedia.

private Activateable2 doOpenMedia(UserRequest ureq, Long mediaKey) {
    stackPanel.popUpToController(this);
    OLATResourceable bindersOres = OresHelper.createOLATResourceableInstance("Media", mediaKey);
    WindowControl swControl = addToHistory(ureq, bindersOres, null);
    Media media = portfolioService.getMediaByKey(mediaKey);
    detailsCtrl = new MediaDetailsController(ureq, swControl, stackPanel, media);
    listenTo(detailsCtrl);
    stackPanel.pushController(media.getTitle(), detailsCtrl);
    return detailsCtrl;
}
Also used : OLATResourceable(org.olat.core.id.OLATResourceable) Media(org.olat.modules.portfolio.Media) WindowControl(org.olat.core.gui.control.WindowControl)

Example 52 with Media

use of org.olat.modules.portfolio.Media in project openolat by klemens.

the class MediaCenterController method loadModel.

private void loadModel() {
    String searchString = tableEl.getQuickSearchString();
    List<String> tagNames = getSelectedTagNames();
    Map<Long, MediaRow> currentMap = model.getObjects().stream().collect(Collectors.toMap(r -> r.getKey(), r -> r));
    List<MediaLight> medias = portfolioService.searchOwnedMedias(getIdentity(), searchString, tagNames);
    List<MediaRow> rows = new ArrayList<>(medias.size());
    for (MediaLight media : medias) {
        if (currentMap.containsKey(media.getKey())) {
            rows.add(currentMap.get(media.getKey()));
        } else {
            MediaHandler handler = portfolioService.getMediaHandler(media.getType());
            VFSLeaf thumbnail = handler.getThumbnail(media, THUMBNAIL_SIZE);
            String mediaTitle = StringHelper.escapeHtml(media.getTitle());
            FormLink openLink = uifactory.addFormLink("select_" + (++counter), "select", mediaTitle, null, flc, Link.NONTRANSLATED);
            MediaRow row = new MediaRow(media, thumbnail, openLink, handler.getIconCssClass(media));
            openLink.setUserObject(row);
            rows.add(row);
        }
    }
    model.setObjects(rows);
    model.filter(tableEl.getSelectedFilters());
    Map<Long, MediaRow> rowMap = model.getObjects().stream().collect(Collectors.toMap(r -> r.getKey(), r -> r));
    Set<String> duplicateCategories = new HashSet<>();
    List<CategoryLight> categories = portfolioService.getMediaCategories(getIdentity());
    List<FormLink> newTagLinks = new ArrayList<>(categories.size());
    for (CategoryLight category : categories) {
        String name = category.getCategory();
        MediaRow mRow = rowMap.get(category.getMediaKey());
        if (mRow != null) {
            mRow.addCategory(name);
        }
        if (duplicateCategories.contains(name)) {
            continue;
        }
        duplicateCategories.add(name);
        FormLink tagLink = uifactory.addFormLink("tag_" + (++counter), "tag", name, null, null, Link.NONTRANSLATED);
        CategoryState state = new CategoryState(category, tagNames.contains(name));
        tagLink.setUserObject(state);
        if (state.isSelected()) {
            tagLink.setCustomEnabledLinkCSS("tag label label-info o_disabled");
        } else {
            tagLink.setCustomEnabledLinkCSS("tag label label-info");
        }
        flc.add(tagLink);
        newTagLinks.add(tagLink);
    }
    flc.contextPut("tagLinks", newTagLinks);
    tagLinks = newTagLinks;
}
Also used : FlexiTableElement(org.olat.core.gui.components.form.flexible.elements.FlexiTableElement) EPArtefactListChoosenEvent(org.olat.portfolio.ui.artefacts.view.EPArtefactListChoosenEvent) Activateable2(org.olat.core.gui.control.generic.dtabs.Activateable2) DefaultFlexiColumnModel(org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel) Autowired(org.springframework.beans.factory.annotation.Autowired) MediaResource(org.olat.core.gui.media.MediaResource) OLATResourceable(org.olat.core.id.OLATResourceable) Size(org.olat.core.commons.services.image.Size) Media(org.olat.modules.portfolio.Media) FlexiTableFilter(org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter) OresHelper(org.olat.core.util.resource.OresHelper) MediaRow(org.olat.modules.portfolio.ui.model.MediaRow) Map(java.util.Map) SortKey(org.olat.core.commons.persistence.SortKey) VelocityContainer(org.olat.core.gui.components.velocity.VelocityContainer) CalloutSettings(org.olat.core.gui.control.generic.closablewrapper.CalloutSettings) MediaCols(org.olat.modules.portfolio.ui.MediaDataModel.MediaCols) MediaHandler(org.olat.modules.portfolio.MediaHandler) AbstractArtefact(org.olat.portfolio.model.artefacts.AbstractArtefact) FlexiTableColumnModel(org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel) CloseableModalController(org.olat.core.gui.control.generic.closablewrapper.CloseableModalController) VFSLeaf(org.olat.core.util.vfs.VFSLeaf) FlexiTableSort(org.olat.core.gui.components.form.flexible.elements.FlexiTableSort) WindowControl(org.olat.core.gui.control.WindowControl) FlexiTableRendererType(org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableRendererType) PortfolioModule(org.olat.portfolio.PortfolioModule) Set(java.util.Set) MediaEvent(org.olat.modules.portfolio.ui.event.MediaEvent) Component(org.olat.core.gui.components.Component) LinkFactory(org.olat.core.gui.components.link.LinkFactory) Collectors(java.util.stream.Collectors) Mapper(org.olat.core.dispatcher.mapper.Mapper) DefaultFlexiTableCssDelegate(org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableCssDelegate) SelectionEvent(org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent) BasicController(org.olat.core.gui.control.controller.BasicController) List(java.util.List) FormLink(org.olat.core.gui.components.form.flexible.elements.FormLink) Align(org.olat.core.gui.components.stack.TooledStackedPanel.Align) TooledController(org.olat.core.gui.components.stack.TooledController) CloseableCalloutWindowController(org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController) TooledStackedPanel(org.olat.core.gui.components.stack.TooledStackedPanel) CategoryLight(org.olat.modules.portfolio.model.CategoryLight) CategoriesCellRenderer(org.olat.modules.portfolio.ui.component.CategoriesCellRenderer) FormEvent(org.olat.core.gui.components.form.flexible.impl.FormEvent) CollectCitationMediaController(org.olat.modules.portfolio.ui.media.CollectCitationMediaController) EPArtefactChoosenEvent(org.olat.portfolio.ui.artefacts.view.EPArtefactChoosenEvent) FormItem(org.olat.core.gui.components.form.flexible.FormItem) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) Event(org.olat.core.gui.control.Event) FormBasicController(org.olat.core.gui.components.form.flexible.impl.FormBasicController) HttpServletRequest(javax.servlet.http.HttpServletRequest) FormItemContainer(org.olat.core.gui.components.form.flexible.FormItemContainer) ContextEntry(org.olat.core.id.context.ContextEntry) EPArtefactPoolRunController(org.olat.portfolio.ui.EPArtefactPoolRunController) StringHelper(org.olat.core.util.StringHelper) StateEntry(org.olat.core.id.context.StateEntry) FlexiTableDataModelFactory(org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory) PortfolioService(org.olat.modules.portfolio.PortfolioService) OrderBy(org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy) Link(org.olat.core.gui.components.link.Link) FlexiTableComponentDelegate(org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableComponentDelegate) CollectTextMediaController(org.olat.modules.portfolio.ui.media.CollectTextMediaController) FlexiTableSearchEvent(org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableSearchEvent) MediaSelectionEvent(org.olat.modules.portfolio.ui.event.MediaSelectionEvent) Controller(org.olat.core.gui.control.Controller) MediaLight(org.olat.modules.portfolio.MediaLight) EPFrontendManager(org.olat.portfolio.manager.EPFrontendManager) FlexiTableSortOptions(org.olat.core.gui.components.form.flexible.elements.FlexiTableSortOptions) VFSMediaResource(org.olat.core.util.vfs.VFSMediaResource) MediaTypeCellRenderer(org.olat.modules.portfolio.ui.renderer.MediaTypeCellRenderer) UserRequest(org.olat.core.gui.UserRequest) VFSLeaf(org.olat.core.util.vfs.VFSLeaf) MediaHandler(org.olat.modules.portfolio.MediaHandler) ArrayList(java.util.ArrayList) FormLink(org.olat.core.gui.components.form.flexible.elements.FormLink) MediaLight(org.olat.modules.portfolio.MediaLight) CategoryLight(org.olat.modules.portfolio.model.CategoryLight) MediaRow(org.olat.modules.portfolio.ui.model.MediaRow) HashSet(java.util.HashSet)

Example 53 with Media

use of org.olat.modules.portfolio.Media in project openolat by klemens.

the class WikiMediaHandler method createMedia.

@Override
public Media createMedia(String title, String description, Object mediaObject, String businessPath, Identity author) {
    String content = null;
    if (mediaObject instanceof WikiPage) {
        WikiPage page = (WikiPage) mediaObject;
        content = page.getContent();
    }
    Media media = mediaDao.createMedia(title, description, content, WIKI_HANDLER, businessPath, null, 70, author);
    ThreadLocalUserActivityLogger.log(PortfolioLoggingAction.PORTFOLIO_MEDIA_ADDED, getClass(), LoggingResourceable.wrap(media));
    return media;
}
Also used : WikiPage(org.olat.modules.wiki.WikiPage) Media(org.olat.modules.portfolio.Media)

Example 54 with Media

use of org.olat.modules.portfolio.Media in project openolat by klemens.

the class ImageMediaEditorController method initForm.

@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
    Media media = mediaPart.getMedia();
    File mediaDir = new File(FolderConfig.getCanonicalRoot(), media.getStoragePath());
    File mediaFile = new File(mediaDir, media.getRootFilename());
    ImageFormItem imageEl = new ImageFormItem(ureq.getUserSession(), "image");
    imageEl.setMedia(mediaFile);
    formLayout.add("image", imageEl);
    alignmentEl = uifactory.addDropdownSingleselect("alignment", null, formLayout, alignmentKeys, alignmentKeys, null);
    alignmentEl.addActionListener(FormEvent.ONCHANGE);
    if (StringHelper.containsNonWhitespace(mediaPart.getLayoutOptions())) {
        for (String alignmentKey : alignmentKeys) {
            if (mediaPart.getLayoutOptions().contains(alignmentKey)) {
                alignmentEl.select(alignmentKey, true);
            }
        }
    }
}
Also used : ImageFormItem(org.olat.core.gui.components.image.ImageFormItem) Media(org.olat.modules.portfolio.Media) File(java.io.File)

Example 55 with Media

use of org.olat.modules.portfolio.Media in project openolat by klemens.

the class BlogEntryMediaHandler method createMedia.

@Override
public Media createMedia(String title, String description, Object mediaObject, String businessPath, Identity author) {
    BlogEntryMedia entry = (BlogEntryMedia) mediaObject;
    Item item = entry.getItem();
    Media media = mediaDao.createMedia(title, description, "", BLOG_ENTRY_HANDLER, businessPath, null, 70, author);
    File mediaDir = fileStorage.generateMediaSubDirectory(media);
    String storagePath = fileStorage.getRelativePath(mediaDir);
    media = mediaDao.updateStoragePath(media, storagePath, BlogArtefact.BLOG_FILE_NAME);
    VFSContainer mediaContainer = fileStorage.getMediaContainer(media);
    VFSContainer itemContainer = feedManager.getItemContainer(item);
    FeedManager.getInstance().saveItemAsXML(item);
    VFSManager.copyContent(itemContainer, mediaContainer);
    FeedManager.getInstance().deleteItemXML(item);
    return media;
}
Also used : Item(org.olat.modules.webFeed.Item) VFSContainer(org.olat.core.util.vfs.VFSContainer) Media(org.olat.modules.portfolio.Media) File(java.io.File)

Aggregations

Media (org.olat.modules.portfolio.Media)60 File (java.io.File)18 Test (org.junit.Test)10 WindowControl (org.olat.core.gui.control.WindowControl)10 Identity (org.olat.core.id.Identity)10 VFSContainer (org.olat.core.util.vfs.VFSContainer)10 MediaHandler (org.olat.modules.portfolio.MediaHandler)10 List (java.util.List)8 Collectors (java.util.stream.Collectors)8 UserRequest (org.olat.core.gui.UserRequest)8 Component (org.olat.core.gui.components.Component)8 OLATResourceable (org.olat.core.id.OLATResourceable)8 ArrayList (java.util.ArrayList)6 HashSet (java.util.HashSet)6 Map (java.util.Map)6 Set (java.util.Set)6 FormItem (org.olat.core.gui.components.form.flexible.FormItem)6 FormItemContainer (org.olat.core.gui.components.form.flexible.FormItemContainer)6 FormLink (org.olat.core.gui.components.form.flexible.elements.FormLink)6 FormBasicController (org.olat.core.gui.components.form.flexible.impl.FormBasicController)6