From 41eef455f14bc783d40f05cfd3e83ded5ebf0eff Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 6 May 2015 14:38:29 +0200 Subject: [PATCH] OO-991: implements feedback, fix some HTML errors in tables --- .../table/AbstractFlexiTableRenderer.java | 12 ++++---- .../gui/components/table/TableRenderer.java | 22 +++++++------- .../course/editor/EditorStatusController.java | 2 +- .../org/olat/course/nodes/GTACourseNode.java | 2 +- .../gta/ui/GTAParticipantController.java | 7 +++++ .../course/nodes/gta/ui/_content/run.html | 29 +++++++++++++++++-- .../gta/ui/_i18n/LocalStrings_de.properties | 1 + .../gta/ui/_i18n/LocalStrings_en.properties | 1 + 8 files changed, 54 insertions(+), 22 deletions(-) diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java index 23fb984fc82..7ce770e7885 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java @@ -315,16 +315,16 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere sb.append("<div class='o_table_footer'><div class='o_table_checkall input-sm'>"); - sb.append("<label class='checkbox-inline'><a id=\"") - .append(dispatchId).append("\" href=\"javascript:o_table_toggleCheck('").append(formName).append("', true);") + sb.append("<label class='checkbox-inline'><a id='") + .append(dispatchId).append("_sa' href=\"javascript:o_table_toggleCheck('").append(formName).append("', true);") .append(FormJSHelper.getXHRFnCallFor(ftE.getRootForm(), dispatchId, 1, new NameValuePair("select", "checkall"))) - .append("\"><input type='checkbox' checked='checked' disabled='disabled' /><span>").append(translator.translate("form.checkall")) + .append("\"><i class='o_icon o_icon-lg o_icon_check_on'> </i> <span>").append(translator.translate("form.checkall")) .append("</span></a></label>"); - sb.append("<label class='checkbox-inline'><a id=\"") - .append(dispatchId).append("\" href=\"javascript:o_table_toggleCheck('").append(formName).append("', false);") + sb.append("<label class='checkbox-inline'><a id='") + .append(dispatchId).append("_dsa' href=\"javascript:o_table_toggleCheck('").append(formName).append("', false);") .append(FormJSHelper.getXHRFnCallFor(ftE.getRootForm(), dispatchId, 1, new NameValuePair("select", "uncheckall"))) - .append("\"><input type='checkbox' disabled='disabled' /><span>").append(translator.translate("form.uncheckall")) + .append("\"><i class='o_icon o_icon-lg o_icon_check_off'> </i> <span>").append(translator.translate("form.uncheckall")) .append("</span></a></label>"); sb.append("</div></div>"); diff --git a/src/main/java/org/olat/core/gui/components/table/TableRenderer.java b/src/main/java/org/olat/core/gui/components/table/TableRenderer.java index 89b681d8237..5a5e659c3b3 100644 --- a/src/main/java/org/olat/core/gui/components/table/TableRenderer.java +++ b/src/main/java/org/olat/core/gui/components/table/TableRenderer.java @@ -220,17 +220,17 @@ public class TableRenderer extends DefaultComponentRenderer { private void appendSelectDeselectAllButtons(final StringOutput target, final Translator translator, Table table, String formName, int rows, int resultsPerPage) { if (table.isMultiSelect()) { - target.append("<div class='o_table_checkall input-sm'>"); - target.append("<label class='checkbox-inline'>"); - target.append("<a href='#' onclick=\"javascript:o_table_toggleCheck('").append(formName).append("', true)\">"); - target.append("<input type='checkbox' checked='checked' disabled='disabled' />"); - target.append(translator.translate("checkall")); - target.append("</a></label>"); - target.append("<label class='checkbox-inline'><a href=\"#\" onclick=\"javascript:o_table_toggleCheck('").append(formName).append("', false)\">"); - target.append("<input type='checkbox' disabled='disabled' />"); - target.append(translator.translate("uncheckall")); - target.append("</a></label>"); - target.append("</div>"); + target.append("<div class='o_table_checkall input-sm'>") + .append("<label class='checkbox-inline'>") + .append("<a href='#' onclick=\"javascript:o_table_toggleCheck('").append(formName).append("', true)\">") + .append("<i class='o_icon o_icon-lg o_icon_check_on'> </i> ") + .append(translator.translate("checkall")) + .append("</a></label>"); + target.append("<label class='checkbox-inline'><a href=\"#\" onclick=\"javascript:o_table_toggleCheck('").append(formName).append("', false)\">") + .append("<i class='o_icon o_icon-lg o_icon_check_off'> </i> ") + .append(translator.translate("uncheckall")) + .append("</a></label>") + .append("</div>"); } if (table.isShowAllSelected() && (rows > resultsPerPage)) { diff --git a/src/main/java/org/olat/course/editor/EditorStatusController.java b/src/main/java/org/olat/course/editor/EditorStatusController.java index 0b15a0570a8..9710b086548 100644 --- a/src/main/java/org/olat/course/editor/EditorStatusController.java +++ b/src/main/java/org/olat/course/editor/EditorStatusController.java @@ -78,7 +78,7 @@ public class EditorStatusController extends BasicController { long lpTimeStamp = cetm.getLatestPublishTimestamp(); if (lpTimeStamp == -1) { - main.contextPut("publishInfos", "published.never.yet"); + main.contextPut("publishInfos", translate("published.never.yet")); } else { // course has been published before Date d = new Date(lpTimeStamp); main.contextPut("publishInfos", translate("published.latest", Formatter.getInstance(getLocale()).formatDateAndTime(d))); diff --git a/src/main/java/org/olat/course/nodes/GTACourseNode.java b/src/main/java/org/olat/course/nodes/GTACourseNode.java index 4486129d868..de5b7633159 100644 --- a/src/main/java/org/olat/course/nodes/GTACourseNode.java +++ b/src/main/java/org/olat/course/nodes/GTACourseNode.java @@ -219,7 +219,7 @@ public class GTACourseNode extends AbstractAccessableCourseNode implements Asses boolean hasScoring = config.getBooleanSafe(GTASK_GRADING); if (hasScoring) { if(!config.getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD) - && !config.getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD)) { + && !config.getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_PASSED_FIELD)) { addStatusErrorDescription("error.missing.score.config", GTAEditController.PANE_TAB_GRADING, sdList); } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java index 3ae3c7cb9a4..6e61e8196f7 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java @@ -46,6 +46,7 @@ import org.olat.core.util.mail.MailTemplate; import org.olat.core.util.mail.MailerResult; import org.olat.core.util.vfs.VFSContainer; import org.olat.course.nodes.GTACourseNode; +import org.olat.course.nodes.MSCourseNode; import org.olat.course.nodes.gta.AssignmentResponse; import org.olat.course.nodes.gta.GTAType; import org.olat.course.nodes.gta.Task; @@ -436,6 +437,11 @@ public class GTAParticipantController extends GTAAbstractController { } } + String infoTextUser = config.getStringValue(MSCourseNode.CONFIG_KEY_INFOTEXT_USER); + if(StringHelper.containsNonWhitespace(infoTextUser)) { + mainVC.contextPut("gradingInfoTextUser", StringHelper.xssScan(infoTextUser)); + } + if(config.getBooleanSafe(GTACourseNode.GTASK_ASSIGNMENT) || config.getBooleanSafe(GTACourseNode.GTASK_SUBMIT) || config.getBooleanSafe(GTACourseNode.GTASK_REVIEW_AND_CORRECTION) @@ -486,6 +492,7 @@ public class GTAParticipantController extends GTAAbstractController { private void setGroupHeaders(BusinessGroup group) { mainVC.contextPut("groupName", group.getName()); openGroupButton = LinkFactory.createButton("open.group", mainVC, this); + openGroupButton.setIconLeftCSS("o_icon o_icon_group"); } private void setMultiGroupsSelection() { diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_content/run.html b/src/main/java/org/olat/course/nodes/gta/ui/_content/run.html index c1b48931140..fbfa7ac6fcb 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/_content/run.html +++ b/src/main/java/org/olat/course/nodes/gta/ui/_content/run.html @@ -1,5 +1,6 @@ -$r.render("contextualSubscription") -<div class="o_block">[ugly]</div> +<div class="clearfix"> + $r.render("contextualSubscription") +</div> #if($noGroupError) <div class="o_error" role="alert">$r.translate("error.no.group")</div> @@ -115,11 +116,33 @@ $r.render("contextualSubscription") <div class="o_bar"></div> <h4 class="o_title">$r.translate("run.grading")</h4> <div class="o_content"> + #if($gradingInfoTextUser && !$gradingInfoTextUser.isEmpty()) + <div class="panel panel-default o_disclaimer"> + <div class="panel-heading" data-toggle="collapse" data-target="#collapseDisclaimer"> + <h4 class="panel-title"> + <i id="collapseDisclaimerToggler" class="o_icon o_icon-fw o_icon_close_togglebox"> </i> + $r.translate("info.title") + </h4> + </div> + <div id="collapseDisclaimer" class="panel-collapse collapse in"><div class="panel-body"> + $r.formatLatexFormulas($gradingInfoTextUser) + </div></div> + </div> + <script type="text/javascript"> + /* <![CDATA[ */ + jQuery('#collapseDisclaimer').on('hide.bs.collapse', function () { + jQuery('#collapseDisclaimerToggler').removeClass('o_icon_close_togglebox').addClass('o_icon_open_togglebox'); + }) + jQuery('#collapseDisclaimer').on('show.bs.collapse', function () { + jQuery('#collapseDisclaimerToggler').removeClass('o_icon_open_togglebox').addClass('o_icon_close_togglebox'); + }) + /* ]]> */ + </script> + #end #if($r.available("grading")) $r.render("grading") #end </div> - #if($userLog || $groupLog) <div class="o_box"> #o_togglebox_start("o_course_run_log" $r.translate("log.title")) diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties index 732afa31825..117d5ed8fe3 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties @@ -61,6 +61,7 @@ group.apply.toall=F\u00FCr die ganze Gruppe group.passed=Gruppe bestanden/nicht bestanden group.score=Gruppe Punkte group.title=Leistungs\u00FCbersicht +info.title=$org.olat.course.nodes.ms\:info.title log.title=\u00C4nderungsverlauf mail.confirm.assignment.body=Zuweisung war erfolgreich mail.confirm.assignment.subject=Zuweisung diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties index f21b3b7ee84..6e503aff3e4 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties @@ -61,6 +61,7 @@ group.apply.toall=For the whole group group.passed=Groups passed/failed group.score=Group score group.title=Score summary +info.title=$org.olat.course.nodes.ms\:info.title log.title=Change log mail.confirm.assignment.body=Assignment was successful mail.confirm.assignment.subject=Assignment -- GitLab