Search in sources :

Example 6 with FormLink

use of org.olat.core.gui.components.form.flexible.elements.FormLink in project OpenOLAT by OpenOLAT.

the class IdentityListCourseNodeController method loadModel.

protected void loadModel(@SuppressWarnings("unused") UserRequest ureq) {
    SearchAssessedIdentityParams params = getSearchParameters();
    List<Identity> assessedIdentities = assessmentToolManager.getAssessedIdentities(getIdentity(), params);
    List<AssessmentEntry> assessmentEntries = assessmentToolManager.getAssessmentEntries(getIdentity(), params, null);
    Map<Long, AssessmentEntry> entryMap = new HashMap<>();
    assessmentEntries.stream().filter(entry -> entry.getIdentity() != null).forEach((entry) -> entryMap.put(entry.getIdentity().getKey(), entry));
    List<AssessedIdentityElementRow> rows = new ArrayList<>(assessedIdentities.size());
    for (Identity assessedIdentity : assessedIdentities) {
        AssessmentEntry entry = entryMap.get(assessedIdentity.getKey());
        CompletionItem currentCompletion = new CompletionItem("current-completion-" + (++counter), getLocale());
        if (entry != null) {
            currentCompletion.setCompletion(entry.getCurrentRunCompletion());
            AssessmentRunStatus status = entry.getCurrentRunStatus();
            currentCompletion.setEnded(status != null && AssessmentRunStatus.done.equals(status));
        }
        FormLink toolsLink = uifactory.addFormLink("tools_" + (++counter), "tools", "", null, null, Link.NONTRANSLATED);
        toolsLink.setIconLeftCSS("o_icon o_icon_actions o_icon-lg");
        AssessedIdentityElementRow row = new AssessedIdentityElementRow(assessedIdentity, entry, currentCompletion, toolsLink, userPropertyHandlers, getLocale());
        toolsLink.setUserObject(row);
        rows.add(row);
    }
    usersTableModel.setObjects(rows);
    List<FlexiTableFilter> filters = tableEl.getSelectedFilters();
    if (filters != null && filters.size() > 0 && filters.get(0) != null) {
        usersTableModel.filter(Collections.singletonList(filters.get(0)));
    }
    tableEl.reset();
    tableEl.reloadData();
}
Also used : FlexiTableElement(org.olat.core.gui.components.form.flexible.elements.FlexiTableElement) Util(org.olat.core.util.Util) IdentityEnvironment(org.olat.core.id.IdentityEnvironment) RepositoryService(org.olat.repository.RepositoryService) Activateable2(org.olat.core.gui.control.generic.dtabs.Activateable2) AssessmentToolManager(org.olat.course.assessment.AssessmentToolManager) Role(org.olat.modules.assessment.Role) DefaultFlexiColumnModel(org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel) Autowired(org.springframework.beans.factory.annotation.Autowired) CourseNode(org.olat.course.nodes.CourseNode) IdentityRef(org.olat.basesecurity.IdentityRef) AssessmentToolSecurityCallback(org.olat.modules.assessment.ui.AssessmentToolSecurityCallback) CourseNodeFactory(org.olat.course.nodes.CourseNodeFactory) OLATResourceable(org.olat.core.id.OLATResourceable) AssessmentToolOptions(org.olat.modules.assessment.AssessmentToolOptions) FlexiTableFilter(org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter) GenericEventListener(org.olat.core.util.event.GenericEventListener) OresHelper(org.olat.core.util.resource.OresHelper) Map(java.util.Map) SortKey(org.olat.core.commons.persistence.SortKey) Group(org.olat.basesecurity.Group) FlexiTableColumnModel(org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel) CloseableModalController(org.olat.core.gui.control.generic.closablewrapper.CloseableModalController) ICourse(org.olat.course.ICourse) IdentityCourseElementCols(org.olat.course.assessment.ui.tool.IdentityListCourseNodeTableModel.IdentityCourseElementCols) AssessmentModule(org.olat.course.assessment.AssessmentModule) UserCourseEnvironment(org.olat.course.run.userview.UserCourseEnvironment) WindowControl(org.olat.core.gui.control.WindowControl) STCourseNode(org.olat.course.nodes.STCourseNode) ScoreEvaluation(org.olat.course.run.scoring.ScoreEvaluation) AssessmentFormEvent(org.olat.modules.assessment.ui.event.AssessmentFormEvent) UserPropertyHandler(org.olat.user.propertyhandlers.UserPropertyHandler) Set(java.util.Set) AssessedIdentityElementRow(org.olat.modules.assessment.ui.AssessedIdentityElementRow) Component(org.olat.core.gui.components.Component) LinkFactory(org.olat.core.gui.components.link.LinkFactory) AssessedIdentityListState(org.olat.modules.assessment.ui.AssessedIdentityListState) AssessedIdentityController(org.olat.modules.assessment.ui.AssessedIdentityController) AssessmentEntryStatus(org.olat.modules.assessment.model.AssessmentEntryStatus) SelectionEvent(org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent) List(java.util.List) FormLink(org.olat.core.gui.components.form.flexible.elements.FormLink) CalculatedAssessableCourseNode(org.olat.course.nodes.CalculatedAssessableCourseNode) Align(org.olat.core.gui.components.stack.TooledStackedPanel.Align) Identity(org.olat.core.id.Identity) AssessmentRunStatus(org.olat.modules.assessment.model.AssessmentRunStatus) CloseableCalloutWindowController(org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController) BaseSecurity(org.olat.basesecurity.BaseSecurity) FormLayoutContainer(org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer) Roles(org.olat.core.id.Roles) TooledStackedPanel(org.olat.core.gui.components.stack.TooledStackedPanel) AssessableCourseNode(org.olat.course.nodes.AssessableCourseNode) FormEvent(org.olat.core.gui.components.form.flexible.impl.FormEvent) HashMap(java.util.HashMap) CourseFactory(org.olat.course.CourseFactory) RepositoryEntry(org.olat.repository.RepositoryEntry) FormItem(org.olat.core.gui.components.form.flexible.FormItem) ArrayList(java.util.ArrayList) CompletionItem(org.olat.modules.assessment.ui.component.CompletionItem) Event(org.olat.core.gui.control.Event) FormBasicController(org.olat.core.gui.components.form.flexible.impl.FormBasicController) AssessmentEntry(org.olat.modules.assessment.AssessmentEntry) FormItemContainer(org.olat.core.gui.components.form.flexible.FormItemContainer) ContextEntry(org.olat.core.id.context.ContextEntry) PassedCellRenderer(org.olat.course.assessment.bulk.PassedCellRenderer) ScoreCellRenderer(org.olat.modules.assessment.ui.ScoreCellRenderer) BaseSecurityModule(org.olat.basesecurity.BaseSecurityModule) 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) CourseEnvironment(org.olat.course.run.environment.CourseEnvironment) Link(org.olat.core.gui.components.link.Link) CompletionEvent(org.olat.modules.assessment.ui.event.CompletionEvent) ShowDetailsEvent(org.olat.course.assessment.ui.tool.event.ShowDetailsEvent) IdentityRefImpl(org.olat.basesecurity.model.IdentityRefImpl) FlexiTableSearchEvent(org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableSearchEvent) Controller(org.olat.core.gui.control.Controller) UserManager(org.olat.user.UserManager) SearchAssessedIdentityParams(org.olat.course.assessment.model.SearchAssessedIdentityParams) AssessmentToolContainer(org.olat.modules.assessment.ui.AssessmentToolContainer) UserCourseEnvironmentImpl(org.olat.course.run.userview.UserCourseEnvironmentImpl) BusinessGroup(org.olat.group.BusinessGroup) FlexiTableSortOptions(org.olat.core.gui.components.form.flexible.elements.FlexiTableSortOptions) UserRequest(org.olat.core.gui.UserRequest) Collections(java.util.Collections) CoordinatorManager(org.olat.core.util.coordinate.CoordinatorManager) AssessmentRunStatus(org.olat.modules.assessment.model.AssessmentRunStatus) HashMap(java.util.HashMap) AssessedIdentityElementRow(org.olat.modules.assessment.ui.AssessedIdentityElementRow) ArrayList(java.util.ArrayList) FormLink(org.olat.core.gui.components.form.flexible.elements.FormLink) AssessmentEntry(org.olat.modules.assessment.AssessmentEntry) CompletionItem(org.olat.modules.assessment.ui.component.CompletionItem) SearchAssessedIdentityParams(org.olat.course.assessment.model.SearchAssessedIdentityParams) FlexiTableFilter(org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter) Identity(org.olat.core.id.Identity)

Example 7 with FormLink

use of org.olat.core.gui.components.form.flexible.elements.FormLink in project OpenOLAT by OpenOLAT.

the class IdentityListCourseNodeController method formInnerEvent.

@Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
    if (tableEl == source) {
        if (event instanceof SelectionEvent) {
            SelectionEvent se = (SelectionEvent) event;
            String cmd = se.getCommand();
            AssessedIdentityElementRow row = usersTableModel.getObject(se.getIndex());
            if ("select".equals(cmd)) {
                doSelect(ureq, row);
            }
        } else if (event instanceof FlexiTableSearchEvent) {
            loadModel(ureq);
        }
    } else if (bulkDoneButton == source) {
        doSetDone(ureq);
    } else if (bulkVisibleButton == source) {
        doConfirmVisible(ureq);
    } else if (source instanceof FormLink) {
        FormLink link = (FormLink) source;
        if ("tools".equals(link.getCmd())) {
            doOpenTools(ureq, (AssessedIdentityElementRow) link.getUserObject(), link);
        }
    }
    super.formInnerEvent(ureq, source, event);
}
Also used : AssessedIdentityElementRow(org.olat.modules.assessment.ui.AssessedIdentityElementRow) SelectionEvent(org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent) FlexiTableSearchEvent(org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableSearchEvent) FormLink(org.olat.core.gui.components.form.flexible.elements.FormLink)

Example 8 with FormLink

use of org.olat.core.gui.components.form.flexible.elements.FormLink in project OpenOLAT by OpenOLAT.

the class AssessmentForm method updateStatus.

private void updateStatus(ScoreEvaluation scoreEval) {
    boolean closed = (scoreEval != null && scoreEval.getAssessmentStatus() == AssessmentEntryStatus.done);
    if (hasPassed) {
        passed.setEnabled(!closed && cut == null && !coachCourseEnv.isCourseReadOnly());
    }
    if (hasScore) {
        score.setEnabled(!closed && !coachCourseEnv.isCourseReadOnly());
    }
    if (hasComment) {
        userComment.setEnabled(!closed && !coachCourseEnv.isCourseReadOnly());
    }
    if (hasIndividualAssessmentDocs) {
        uploadDocsEl.setVisible(!closed && !coachCourseEnv.isCourseReadOnly());
    }
    coachComment.setEnabled(!closed && !coachCourseEnv.isCourseReadOnly());
    if (hasAttempts) {
        attempts.setEnabled(!closed && !coachCourseEnv.isCourseReadOnly());
    }
    if (assessmentDocuments != null) {
        for (DocumentWrapper assessmentDoc : assessmentDocuments) {
            FormLink deleteButton = assessmentDoc.getDeleteButton();
            if (deleteButton != null) {
                deleteButton.setEnabled(!closed && !coachCourseEnv.isCourseReadOnly());
                deleteButton.setVisible(!closed && !coachCourseEnv.isCourseReadOnly());
            }
        }
    }
    submitButton.setVisible(!coachCourseEnv.isCourseReadOnly());
    saveAndDoneLink.setVisible(!closed && !coachCourseEnv.isCourseReadOnly());
    reopenLink.setVisible(closed && !coachCourseEnv.isCourseReadOnly());
    flc.setDirty(true);
}
Also used : FormLink(org.olat.core.gui.components.form.flexible.elements.FormLink)

Example 9 with FormLink

use of org.olat.core.gui.components.form.flexible.elements.FormLink in project OpenOLAT by OpenOLAT.

the class AssessmentForm method reloadAssessmentDocs.

private void reloadAssessmentDocs() {
    if (docsLayoutCont == null)
        return;
    List<File> documents = assessableCourseNode.getIndividualAssessmentDocuments(assessedUserCourseEnv);
    List<DocumentWrapper> wrappers = new ArrayList<>(documents.size());
    for (File document : documents) {
        DocumentWrapper wrapper = new DocumentWrapper(document);
        wrappers.add(wrapper);
        FormLink deleteButton = uifactory.addFormLink("delete_doc_" + (++counter), "delete", null, docsLayoutCont, Link.BUTTON_XSMALL);
        deleteButton.setEnabled(true);
        deleteButton.setVisible(true);
        wrapper.setDeleteButton(deleteButton);
    }
    docsLayoutCont.contextPut("documents", wrappers);
    assessmentDocuments = wrappers;
}
Also used : ArrayList(java.util.ArrayList) FormLink(org.olat.core.gui.components.form.flexible.elements.FormLink) File(java.io.File)

Example 10 with FormLink

use of org.olat.core.gui.components.form.flexible.elements.FormLink in project OpenOLAT by OpenOLAT.

the class MediaLinksController method addNewFormLink.

private void addNewFormLink(LinkWrapper link, FormLayoutContainer layoutContainer) {
    // add link target
    String id = link.getId();
    TextElement url = uifactory.addTextElement("url_" + id, null, -1, link.getLink().getURI(), layoutContainer);
    url.clearError();
    url.setDisplaySize(60);
    url.setMandatory(true);
    url.setEnabled(false);
    link.setUrl(url);
    // custom media action button
    FormLink mediaButton = uifactory.addFormLink("media_" + id, " ", " ", layoutContainer, Link.NONTRANSLATED);
    mediaButton.setIconLeftCSS("o_icon o_icon_browse");
    mediaButton.setUserObject(link);
    link.setMediaButton(mediaButton);
    // add link description
    TextElement name = uifactory.addTextElement("displayName_" + id, null, -1, link.getLink().getDisplayName(), layoutContainer);
    name.clearError();
    name.setDisplaySize(40);
    name.setMandatory(true);
    link.setName(name);
    // add link add action button
    FormLink addButton = uifactory.addFormLink("add_" + id, "table.add", "table.add", layoutContainer, Link.BUTTON);
    addButton.setUserObject(link);
    link.setAddButton(addButton);
    // add link deletion action button
    FormLink delButton = uifactory.addFormLink("del_" + id, "table.delete", "table.delete", layoutContainer, Link.BUTTON);
    delButton.setUserObject(link);
    link.setDelButton(delButton);
}
Also used : TextElement(org.olat.core.gui.components.form.flexible.elements.TextElement) FormLink(org.olat.core.gui.components.form.flexible.elements.FormLink)

Aggregations

FormLink (org.olat.core.gui.components.form.flexible.elements.FormLink)376 ArrayList (java.util.ArrayList)108 SelectionEvent (org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent)64 FormLayoutContainer (org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer)40 TextElement (org.olat.core.gui.components.form.flexible.elements.TextElement)36 SingleSelection (org.olat.core.gui.components.form.flexible.elements.SingleSelection)34 List (java.util.List)30 FormItem (org.olat.core.gui.components.form.flexible.FormItem)28 HashMap (java.util.HashMap)26 FlexiTableSearchEvent (org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableSearchEvent)24 CloseableModalController (org.olat.core.gui.control.generic.closablewrapper.CloseableModalController)22 Date (java.util.Date)18 Map (java.util.Map)18 Link (org.olat.core.gui.components.link.Link)18 Identity (org.olat.core.id.Identity)18 Component (org.olat.core.gui.components.Component)16 RichTextElement (org.olat.core.gui.components.form.flexible.elements.RichTextElement)16 FormEvent (org.olat.core.gui.components.form.flexible.impl.FormEvent)16 Controller (org.olat.core.gui.control.Controller)16 Event (org.olat.core.gui.control.Event)16