Search in sources :

Example 6 with MediaHandler

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

the class MediaCenterController method initFilters.

private void initFilters(FlexiTableElement tableElement) {
    List<FlexiTableFilter> filters = new ArrayList<>(16);
    filters.add(new FlexiTableFilter(translate("filter.show.all"), "showall"));
    filters.add(FlexiTableFilter.SPACER);
    List<MediaHandler> handlers = portfolioService.getMediaHandlers();
    for (MediaHandler handler : handlers) {
        filters.add(new FlexiTableFilter(translate("artefact." + handler.getType()), handler.getType()));
    }
    tableElement.setFilters(null, filters, false);
}
Also used : MediaHandler(org.olat.modules.portfolio.MediaHandler) FlexiTableFilter(org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter) ArrayList(java.util.ArrayList)

Example 7 with MediaHandler

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

the class MediaCenterController method initForm.

@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
    if (select) {
        newMediaCallout = uifactory.addFormLink("new.medias", formLayout, Link.BUTTON);
        newMediaCallout.setIconRightCSS("o_icon o_icon_caret o_icon-fw");
    }
    FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
    columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, MediaCols.key, "select"));
    Map<String, MediaHandler> handlersMap = portfolioService.getMediaHandlers().stream().collect(Collectors.toMap(h -> h.getType(), h -> h));
    columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(MediaCols.type, new MediaTypeCellRenderer(handlersMap)));
    columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(MediaCols.title, "select"));
    columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(MediaCols.collectionDate, "select"));
    columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(MediaCols.categories, new CategoriesCellRenderer()));
    columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("select", translate("select"), "select"));
    model = new MediaDataModel(columnsModel, getLocale());
    tableEl = uifactory.addTableElement(getWindowControl(), "table", model, 20, false, getTranslator(), formLayout);
    tableEl.setAvailableRendererTypes(FlexiTableRendererType.custom, FlexiTableRendererType.classic);
    tableEl.setRendererType(FlexiTableRendererType.custom);
    tableEl.setSearchEnabled(true);
    tableEl.setCustomizeColumns(true);
    tableEl.setEmtpyTableMessageKey("table.sEmptyTable");
    tableEl.setPageSize(24);
    VelocityContainer row = createVelocityContainer("media_row");
    // sets its own DOM id in velocity container
    row.setDomReplacementWrapperRequired(false);
    tableEl.setRowRenderer(row, this);
    tableEl.setCssDelegate(new MediaCssDelegate());
    tableEl.setAndLoadPersistedPreferences(ureq, "media-list");
    initSorters(tableEl);
    initFilters(tableEl);
    mapperThumbnailUrl = registerCacheableMapper(ureq, "media-thumbnail", new ThumbnailMapper(model));
    row.contextPut("mapperThumbnailUrl", mapperThumbnailUrl);
}
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) MediaTypeCellRenderer(org.olat.modules.portfolio.ui.renderer.MediaTypeCellRenderer) MediaHandler(org.olat.modules.portfolio.MediaHandler) FlexiTableColumnModel(org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel) CategoriesCellRenderer(org.olat.modules.portfolio.ui.component.CategoriesCellRenderer) DefaultFlexiColumnModel(org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel) VelocityContainer(org.olat.core.gui.components.velocity.VelocityContainer)

Example 8 with MediaHandler

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

the class MediaMetadataController method loadMetadata.

private void loadMetadata(VelocityContainer metaVC) {
    metaVC.contextPut("media", media);
    String author = userManager.getUserDisplayName(media.getAuthor());
    metaVC.contextPut("author", author);
    MediaHandler handler = portfolioService.getMediaHandler(media.getType());
    String type = translate("artefact." + handler.getType());
    metaVC.contextPut("mediaType", type);
    String iconCssClass = handler.getIconCssClass(media);
    if (StringHelper.containsNonWhitespace(iconCssClass)) {
        metaVC.contextPut("mediaIconCssClass", iconCssClass);
    }
    if (media.getCollectionDate() != null) {
        String collectionDate = Formatter.getInstance(getLocale()).formatDate(media.getCollectionDate());
        metaVC.contextPut("collectionDate", collectionDate);
    }
    if (StringHelper.containsNonWhitespace(media.getMetadataXml())) {
        Object metadata = MetadataXStream.get().fromXML(media.getMetadataXml());
        metaVC.contextPut("metadata", metadata);
    }
    List<Category> categories = portfolioService.getCategories(media);
    if (categories != null && categories.size() > 0) {
        List<String> categoriesList = categories.stream().map(c -> c.getName()).collect(Collectors.toList());
        metaVC.contextPut("categoriesList", categoriesList);
    }
}
Also used : Formatter(org.olat.core.util.Formatter) PortfolioService(org.olat.modules.portfolio.PortfolioService) WindowControl(org.olat.core.gui.control.WindowControl) Autowired(org.springframework.beans.factory.annotation.Autowired) Component(org.olat.core.gui.components.Component) Collectors(java.util.stream.Collectors) UserManager(org.olat.user.UserManager) Event(org.olat.core.gui.control.Event) BasicController(org.olat.core.gui.control.controller.BasicController) List(java.util.List) MetadataXStream(org.olat.modules.portfolio.manager.MetadataXStream) Category(org.olat.modules.portfolio.Category) Media(org.olat.modules.portfolio.Media) VelocityContainer(org.olat.core.gui.components.velocity.VelocityContainer) MediaHandler(org.olat.modules.portfolio.MediaHandler) StringHelper(org.olat.core.util.StringHelper) UserRequest(org.olat.core.gui.UserRequest) Category(org.olat.modules.portfolio.Category) MediaHandler(org.olat.modules.portfolio.MediaHandler)

Example 9 with MediaHandler

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

the class MediaTypeCellRenderer method render.

@Override
public void render(Renderer renderer, StringOutput target, Object cellValue, int row, FlexiTableComponent source, URLBuilder ubu, Translator translator) {
    if (cellValue instanceof MediaRow) {
        MediaRow mRow = (MediaRow) cellValue;
        MediaHandler handler = handlersMap.get(mRow.getType());
        if (handler != null) {
            target.append("<i class='o_icon o_icon-lg ").append(handler.getIconCssClass(mRow)).append("'> </i>");
        }
    }
}
Also used : MediaHandler(org.olat.modules.portfolio.MediaHandler) MediaRow(org.olat.modules.portfolio.ui.model.MediaRow)

Example 10 with MediaHandler

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

the class MediaUploadController method formOK.

@Override
protected void formOK(UserRequest ureq) {
    if (mediaReference == null) {
        String title = titleEl.getValue();
        String description = descriptionEl.getValue();
        File uploadedFile = fileEl.getUploadFile();
        String uploadedFilename = fileEl.getUploadFileName();
        MediaHandler mediaHandler = getHandler();
        if (mediaHandler != null) {
            UploadMedia mObject = new UploadMedia(uploadedFile, uploadedFilename, fileEl.getUploadMimeType());
            mediaReference = mediaHandler.createMedia(title, description, mObject, businessPath, getIdentity());
        }
    } else {
    // TODO can we update an artefact?
    }
    List<String> updatedCategories = categoriesEl.getValueList();
    portfolioService.updateCategories(mediaReference, updatedCategories);
    fireEvent(ureq, Event.DONE_EVENT);
}
Also used : MediaHandler(org.olat.modules.portfolio.MediaHandler) UploadMedia(org.olat.modules.portfolio.ui.media.UploadMedia) File(java.io.File)

Aggregations

MediaHandler (org.olat.modules.portfolio.MediaHandler)18 Media (org.olat.modules.portfolio.Media)8 PortfolioService (org.olat.modules.portfolio.PortfolioService)8 ArrayList (java.util.ArrayList)6 List (java.util.List)6 Collectors (java.util.stream.Collectors)6 UserRequest (org.olat.core.gui.UserRequest)6 Component (org.olat.core.gui.components.Component)6 FlexiTableFilter (org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter)6 VelocityContainer (org.olat.core.gui.components.velocity.VelocityContainer)6 AbstractArtefact (org.olat.portfolio.model.artefacts.AbstractArtefact)6 HashSet (java.util.HashSet)4 Map (java.util.Map)4 Set (java.util.Set)4 HttpServletRequest (javax.servlet.http.HttpServletRequest)4 SortKey (org.olat.core.commons.persistence.SortKey)4 Size (org.olat.core.commons.services.image.Size)4 Mapper (org.olat.core.dispatcher.mapper.Mapper)4 FormItem (org.olat.core.gui.components.form.flexible.FormItem)4 FormItemContainer (org.olat.core.gui.components.form.flexible.FormItemContainer)4