Skip to content
Snippets Groups Projects
Commit a70d9a99 authored by hg's avatar hg
Browse files

OO-1068: more bootstrapify for question pool

parent 029b84e5
No related branches found
No related tags found
No related merge requests found
Showing
with 73 additions and 62 deletions
......@@ -22,7 +22,6 @@ package org.olat.admin.user.bulkChange;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringEscapeUtils;
import org.olat.core.gui.components.table.DefaultTableDataModel;
import org.olat.core.gui.translator.Translator;
import org.olat.core.util.filter.FilterFactory;
......@@ -67,7 +66,7 @@ public class GroupAddOverviewModel extends DefaultTableDataModel<BusinessGroup>
case 0: // name
String name = group.getName();
if(name == null) return "";
return StringEscapeUtils.escapeHtml(name);
return name;
case 1: // description
String desc = group.getDescription();
return FilterFactory.getHtmlTagAndDescapingFilter().filter(desc);
......
......@@ -145,7 +145,7 @@ class UserBulkChangeStep02 extends BasicStep {
@Override
protected void doDispose() {
// TODO Auto-generated method stub
//
}
@Override
......@@ -158,7 +158,6 @@ class UserBulkChangeStep02 extends BasicStep {
return true;
}
@SuppressWarnings("unchecked")
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
FormLayoutContainer formLayoutVertical = FormLayoutContainer.createVerticalFormLayout("vertical", getTranslator());
......@@ -173,8 +172,11 @@ class UserBulkChangeStep02 extends BasicStep {
textContainer.contextPut("validChange", validChange);
if (!validChange) return;
@SuppressWarnings("unchecked")
List<Identity> selectedIdentities = (List<Identity>) getFromRunContext("identitiesToEdit");
@SuppressWarnings("unchecked")
HashMap<String, String> attributeChangeMap = (HashMap<String, String>) getFromRunContext("attributeChangeMap");
@SuppressWarnings("unchecked")
HashMap<String, String> roleChangeMap = (HashMap<String, String>) getFromRunContext("roleChangeMap");
Roles roles = ureq.getUserSession().getRoles();
......@@ -201,7 +203,7 @@ class UserBulkChangeStep02 extends BasicStep {
if (userLanguage.equals(inputLanguage)) {
userDataArray.add(userLanguage);
} else {
userDataArray.add("<span class=\"b_wizard_table_changedcell\">" + inputLanguage + "</span>");
userDataArray.add(decorateChangedCell(inputLanguage));
}
} else {
userDataArray.add(userLanguage);
......@@ -227,7 +229,7 @@ class UserBulkChangeStep02 extends BasicStep {
userDataArray.add(userValue);
} else {
// style italic:
userDataArray.add("<span class=\"b_wizard_table_changedcell\">" + evaluatedInputFieldValue + "</span>");
userDataArray.add(decorateChangedCell(evaluatedInputFieldValue));
}
} else {
// property has not been checked in step00 but should be in
......@@ -270,12 +272,14 @@ class UserBulkChangeStep02 extends BasicStep {
FlexiTableDataModel<List<String>> tableDataModel = new FlexiTableDataModelImpl<List<String>>(new OverviewModel(mergedDataChanges, colPos), tableColumnModel);
uifactory.addTableElement(ureq, getWindowControl(), "newUsers", tableDataModel, formLayoutVertical);
//fxdiff: 101 add group overview
Set<Long> allGroups = new HashSet<Long>();
@SuppressWarnings("unchecked")
List<Long> ownGroups = (List<Long>) getFromRunContext("ownerGroups");
@SuppressWarnings("unchecked")
List<Long> partGroups = (List<Long>) getFromRunContext("partGroups");
allGroups.addAll(ownGroups);
allGroups.addAll(partGroups);
@SuppressWarnings("unchecked")
List<Long> mailGroups = (List<Long>) getFromRunContext("mailGroups");
if (allGroups.size() != 0) {
......@@ -318,9 +322,12 @@ class UserBulkChangeStep02 extends BasicStep {
return isInGroup.toString();
} else {
isInGroup = !isInGroup; //invert to represent the new state
return "<span class=\"b_wizard_table_changedcell\">" + isInGroup.toString() + "</span>";
return decorateChangedCell(isInGroup);
}
}
private String decorateChangedCell(Object val) {
return "<span class='o_userbulk_changedcell'><i class='o_icon o_icon_new'> </i> " + val.toString() + "</span>";
}
}
}
}
\ No newline at end of file
......@@ -26,7 +26,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.olat.core.CoreSpringFactory;
import org.olat.core.commons.persistence.PersistenceHelper;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.EscapeMode;
......@@ -64,6 +63,7 @@ import org.olat.group.model.AddToGroupsEvent;
import org.olat.group.model.BGRepositoryEntryRelation;
import org.olat.group.model.SearchBusinessGroupParams;
import org.olat.group.ui.BusinessGroupFormController;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Description:<br>
......@@ -87,13 +87,12 @@ public class GroupSearchController extends StepFormBasicController {
private GroupTableDataModel tableDataModel;
private String lastSearchValue;
private final BusinessGroupService businessGroupService;
@Autowired
private BusinessGroupService businessGroupService;
// constructor to be used like a normal FormBasicController
public GroupSearchController(UserRequest ureq, WindowControl wControl) {
super(ureq, wControl, LAYOUT_VERTICAL);
businessGroupService = CoreSpringFactory.getImpl(BusinessGroupService.class);
Translator pT = Util.createPackageTranslator(BusinessGroupFormController.class, ureq.getLocale(), getTranslator());
flc.setTranslator(pT);
initForm(ureq);
......@@ -102,7 +101,6 @@ public class GroupSearchController extends StepFormBasicController {
// constructor for use in steps-wizzard
public GroupSearchController(UserRequest ureq, WindowControl wControl, Form form, StepsRunContext stepsRunContext) {
super(ureq, wControl, form, stepsRunContext, LAYOUT_VERTICAL, "resulttable");
businessGroupService = CoreSpringFactory.getImpl(BusinessGroupService.class);
Translator pT = Util.createPackageTranslator(BusinessGroupFormController.class, ureq.getLocale(), getTranslator());
flc.setTranslator(pT);
initForm(ureq);
......
......@@ -27,13 +27,14 @@ package org.olat.core.gui.components.form.flexible.impl.components;
import org.olat.core.gui.components.Component;
import org.olat.core.gui.components.ComponentRenderer;
import org.olat.core.gui.components.DefaultComponentRenderer;
import org.olat.core.gui.components.form.flexible.impl.FormBaseComponentImpl;
import org.olat.core.gui.render.RenderResult;
import org.olat.core.gui.render.Renderer;
import org.olat.core.gui.render.RenderingState;
import org.olat.core.gui.render.StringOutput;
import org.olat.core.gui.render.URLBuilder;
import org.olat.core.gui.translator.Translator;
import org.olat.core.util.StringHelper;
/**
* Description:<br>
......@@ -44,29 +45,18 @@ import org.olat.core.gui.translator.Translator;
* @author patrickb
*/
public class SimpleFormErrorText extends FormBaseComponentImpl {
private static final ComponentRenderer RENDERER = new ComponentRenderer() {
@Override
public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
RenderingState rstate) {
//
}
@Override
public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) {
//
}
private static final ComponentRenderer RENDERER = new DefaultComponentRenderer() {
@Override
public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
RenderResult renderResult, String[] args) {
SimpleFormErrorText stc = (SimpleFormErrorText) source;
if(StringHelper.containsNonWhitespace(stc.getText())) {
// error component only
sb.append("<div class='o_error' id='o_c").append(source.getDispatchID()).append("'>");
sb.append(stc.text);
sb.append("</div>");
sb.append("<div class='o_error' id='o_c").append(source.getDispatchID()).append("'>")
.append(stc.getText())
.append("</div>");
}
}
};
private final String text;
......@@ -77,6 +67,10 @@ public class SimpleFormErrorText extends FormBaseComponentImpl {
this.setDomReplacementWrapperRequired(false);
setDirty(true);
}
public String getText() {
return text;
}
/**
* @see org.olat.core.gui.components.Component#getHTMLRendererSingleton()
......@@ -85,5 +79,4 @@ public class SimpleFormErrorText extends FormBaseComponentImpl {
public ComponentRenderer getHTMLRendererSingleton() {
return RENDERER;
}
}
}
\ No newline at end of file
......@@ -150,7 +150,7 @@ class JSDateChooserRenderer implements ComponentRenderer {
}
private StringOutput renderMS(StringOutput dc, String id, int time) {
dc.append("<input class='form-control' type=\"text\" id=\"").append(id).append("\"")
dc.append("<input class='form-control o_date_ms' type=\"text\" id=\"").append(id).append("\"")
.append(" name=\"").append(id).append("\" size=\"2\"")
.append(" maxlength=\"2\"").append("\" value=\"").append(time > 9 ? "" + time : "0" + time).append("\"")
.append(" />");
......
......@@ -124,7 +124,7 @@ class FlexiDataTablesRenderer extends AbstractFlexiTableRenderer implements Comp
target.append(" ],\n")
.append(" 'fnRowCallback': function( nRow, aData, iDisplayIndex, iDisplayIndexFull) {\n")
.append(" if(selectedIndex == iDisplayIndexFull) {\n")
.append(" jQuery(nRow).addClass('b_row_selected');\n")
.append(" jQuery(nRow).addClass('o_row_selected');\n")
.append(" }\n")
.append(" jQuery(nRow).draggable({ \n")
.append(" containment: '#o_main',\n")
......@@ -160,9 +160,9 @@ class FlexiDataTablesRenderer extends AbstractFlexiTableRenderer implements Comp
.append(" link = true;\n")
.append(" } else if (el.tagName == 'TR' && rowId == null) {\n")
.append(" jQuery('#").append(id).append(" tbody tr').each(function(index, trEl) {\n")
.append(" jQuery(trEl).removeClass('b_row_selected');\n")
.append(" jQuery(trEl).removeClass('o_row_selected');\n")
.append(" });\n")
.append(" jQuery(el).addClass('b_row_selected');\n")
.append(" jQuery(el).addClass('o_row_selected');\n")
.append(" rowId = jQuery(el).attr('id');\n")
.append(" return false;\n")
.append(" }\n")
......
......@@ -19,6 +19,8 @@
*/
package org.olat.core.gui.control.generic.closablewrapper;
import java.util.List;
import org.apache.commons.lang.StringEscapeUtils;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.Component;
......@@ -28,8 +30,11 @@ import org.olat.core.gui.components.panel.Panel;
import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowBackOffice;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.controller.BasicController;
import org.olat.core.gui.control.util.ZIndexWrapper;
import org.olat.core.gui.render.ValidationResult;
import org.olat.core.logging.OLATRuntimeException;
/**
......@@ -91,7 +96,18 @@ public class CloseableCalloutWindowController extends BasicController {
boolean ajax = getWindowControl().getWindowBackOffice().getWindowManager().isAjaxEnabled();
if (ajax) {
calloutVC = createVelocityContainer("callout");
final Panel guiMsgPlace = new Panel("guimessage_place");
calloutVC = new VelocityContainer("closeablewrapper", velocity_root + "/callout.html", null, this) {
public void validate(UserRequest ureq, ValidationResult vr) {
super.validate(ureq, vr);
// just before rendering, we need to tell the windowbackoffice that we are a favorite for accepting gui-messages.
// the windowbackoffice doesn't know about guimessages, it is only a container that keeps them for one render cycle
WindowBackOffice wbo = getWindowControl().getWindowBackOffice();
List<ZIndexWrapper> zindexed = wbo.getGuiMessages();
zindexed.add(new ZIndexWrapper(guiMsgPlace, 20));
}
};
calloutVC.put("calloutWindowContent", calloutWindowContent);
// Target link
setDOMTarget(targetDomID);
......
......@@ -75,7 +75,7 @@ public class BulkAssessment_2b_ChooseColumnsStep extends BasicStep {
BulkAssessmentSettings settings = new BulkAssessmentSettings(courseNode);
boolean onlyReturnFiles = (!settings.isHasScore() && !settings.isHasPassed() && !settings.isHasUserComment());
if (onlyReturnFiles) {
return new ChooseColumnsStepSkipForm(ureq, wControl, savedColumnsSettings, context, form);
return new ChooseColumnsStepSkipForm(ureq, wControl, context, form);
} else {
return new ChooseColumnsStepForm(ureq, wControl, savedColumnsSettings, context, form);
}
......
......@@ -48,7 +48,6 @@ public class BulkAssessment_3_ValidationStep extends BasicStep {
@Override
public StepFormController getStepController(UserRequest ureq, WindowControl wControl, StepsRunContext context, Form form) {
ValidationStepForm ctrl = new ValidationStepForm(ureq, wControl, context, form);
return ctrl;
return new ValidationStepForm(ureq, wControl, context, form);
}
}
......@@ -25,6 +25,7 @@ import java.util.Map;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
import org.olat.core.gui.components.form.flexible.impl.Form;
import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
......@@ -139,7 +140,8 @@ public class ChooseColumnsStepForm extends StepFormBasicController {
}
overviewDataModel.setTableColumnModel(tableColumnModel);
uifactory.addTableElement(ureq, getWindowControl(), "overviewList", overviewDataModel, formLayout);
FlexiTableElement tableEl = uifactory.addTableElement(ureq, getWindowControl(), "overviewList", overviewDataModel, formLayout);
tableEl.setCustomizeColumns(false);
}
private String getSelectedKey(int pos, int settings, String[] theKeys) {
......
......@@ -27,7 +27,6 @@ import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.generic.wizard.StepFormBasicController;
import org.olat.core.gui.control.generic.wizard.StepsEvent;
import org.olat.core.gui.control.generic.wizard.StepsRunContext;
import org.olat.course.assessment.model.BulkAssessmentColumnSettings;
/**
*
......@@ -37,7 +36,7 @@ import org.olat.course.assessment.model.BulkAssessmentColumnSettings;
*/
public class ChooseColumnsStepSkipForm extends StepFormBasicController {
public ChooseColumnsStepSkipForm(UserRequest ureq, WindowControl wControl, BulkAssessmentColumnSettings columnsSettings,
public ChooseColumnsStepSkipForm(UserRequest ureq, WindowControl wControl,
StepsRunContext runContext, Form rootForm) {
super(ureq, wControl, rootForm, runContext, LAYOUT_VERTICAL, null);
setTranslator(new HeaderColumnTranslator(getTranslator()));
......
......@@ -100,10 +100,12 @@ public class ValidationStepForm extends StepFormBasicController {
validModel = new ValidDataModel(Collections.<UserData>emptyList());
validModel.setTableColumnModel(tableColumnModel);
validTableEl = uifactory.addTableElement(ureq, getWindowControl(), "validList", validModel, formLayout);
validTableEl.setCustomizeColumns(false);
invalidModel = new ValidDataModel(Collections.<UserData>emptyList());
invalidModel.setTableColumnModel(tableColumnModel);
invalidTableEl = uifactory.addTableElement(ureq, getWindowControl(), "notFoundList", invalidModel, formLayout);
invalidTableEl.setCustomizeColumns(false);
flc.contextPut("settings", settings);
}
......
......@@ -108,7 +108,7 @@ class PublishStepUpdate extends BasicStep {
CourseNodeConfiguration config = courseNodeFactory.getCourseNodeConfiguration(courseNode.getType());
String cssClass = config.getIconCSSClass();
String nodeName = courseNode.getShortName();
notes.append("<div class='b_with_small_icon_left ").append(cssClass).append("'><b>").append(nodeName).append("</b></div><ul>");
notes.append("<i class='o_icon o_icon-fw ").append(cssClass).append("'> </i> <b>").append(nodeName).append("</b><ul>");
for ( ;currentDesc != null && currentDesc.getDescriptionForUnit().equals(nodeId); currentDesc = (it.hasNext() ? it.next() : null)) {
notes.append("<li>").append(currentDesc.getShortDescription(ureq.getLocale())).append("</li>");
}
......
<h4>$r.translate("publish.step.update.title")</h4>
#if($r.available("updateNotes"))
<div class='b_info'>
$r.translate("publish.update.description")
</div>
<div class='o_info'>$r.translate("publish.update.description")</div>
$r.render("updateNotes")
#else
$r.translate("publish.update.nothing")
......
......@@ -511,7 +511,7 @@ public class BusinessGroupDAO {
if(StringHelper.containsNonWhitespace(params.getCourseTitle())) {
where = where(query, where);
query.append(" bgi.key in (")
.append(" select bgRel.groupKey from ").append(BGRepositoryEntryRelation.class.getName()).append(" bgRel ")
.append(" select bgRel.relationId.groupKey from repoentryrelationview bgRel ")
.append(" where ");
searchLikeAttribute(query, "bgRel", "repositoryEntryDisplayName", "displayName");
query.append(" )");
......
......@@ -46,6 +46,7 @@ import org.olat.core.util.Util;
import org.olat.course.CourseModule;
import org.olat.group.ui.edit.BusinessGroupEditResourceController;
import org.olat.repository.RepositoryEntry;
import org.olat.repository.RepositoryService;
import org.olat.repository.controllers.ReferencableEntriesSearchController;
import org.olat.repository.ui.RepositoryTableModel;
......@@ -66,6 +67,7 @@ public class BGConfigResourcesStepController extends StepFormBasicController {
StepsRunContext runContext) {
super(ureq, wControl, rootForm, runContext, LAYOUT_CUSTOM, "resources");
setTranslator(Util.createPackageTranslator(BusinessGroupEditResourceController.class, getLocale(), getTranslator()));
setTranslator(Util.createPackageTranslator(RepositoryService.class, getLocale(), getTranslator()));
initForm(ureq);
}
......
$r.render("cmd.addresource")
<div class="btn-toolbar"><div class="pull-right">
$r.render("cmd.addresource")
</div></div>
$r.render("resources")
\ No newline at end of file
$r.render("users.addowner") $r.render("users.addparticipant") $r.render("users.addwaiting")
<div class="btn-toolbar"><div class="pull-right">
$r.render("users.addowner") $r.render("users.addparticipant") $r.render("users.addwaiting")
</div></div>
$r.render("users")
$r.render("ok") $r.render("cancel")
\ No newline at end of file
......@@ -22,7 +22,6 @@ package org.olat.ims.qti;
import org.olat.core.CoreSpringFactory;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.Component;
import org.olat.core.gui.components.panel.Panel;
import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
......@@ -46,7 +45,6 @@ import org.olat.modules.qpool.QuestionItem;
*/
public class QTI12PreviewController extends BasicController {
private final Panel mainPanel;
private final VelocityContainer mainVC;
private ItemPreviewController previewCtrl;
private QTI12MetadataController metadataCtrl;
......@@ -58,7 +56,6 @@ public class QTI12PreviewController extends BasicController {
qpoolService = CoreSpringFactory.getImpl(QPoolService.class);
mainVC = createVelocityContainer("qti_preview");
mainPanel = new Panel("qti12preview");
VFSLeaf leaf = qpoolService.getRootFile(qitem);
if(leaf == null) {
......@@ -71,8 +68,7 @@ public class QTI12PreviewController extends BasicController {
String mapperUrl = registerMapper(ureq, new VFSContainerMapper(directory));
previewCtrl = new ItemPreviewController(wControl, item, mapperUrl, translator);
listenTo(previewCtrl);
mainPanel.setContent(previewCtrl.getInitialComponent());
mainVC.put("preview", previewCtrl.getInitialComponent());
if(!summary) {
metadataCtrl = new QTI12MetadataController(ureq, getWindowControl(), item);
listenTo(metadataCtrl);
......@@ -81,7 +77,6 @@ public class QTI12PreviewController extends BasicController {
}
}
mainVC.put("preview", mainPanel);
putInitialPanel(mainVC);
}
......
#if($r.available("preview"))
$r.render("preview")
#end
#if($r.available("metadatas"))
$r.render("metadatas")
#end
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment