Skip to content
Snippets Groups Projects
Commit 6f494d69 authored by srosse's avatar srosse
Browse files

OO-4075: filter the list of change log in the IQ run controller

parent 0155b89b
No related branches found
No related tags found
No related merge requests found
...@@ -27,7 +27,8 @@ package org.olat.course.nodes.iq; ...@@ -27,7 +27,8 @@ package org.olat.course.nodes.iq;
import java.io.File; import java.io.File;
import java.text.DateFormat; import java.text.DateFormat;
import java.util.Arrays; import java.util.ArrayList;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -222,25 +223,34 @@ public class IQRunController extends BasicController implements GenericEventList ...@@ -222,25 +223,34 @@ public class IQRunController extends BasicController implements GenericEventList
Formatter formatter = Formatter.getInstance(ureq.getLocale()); Formatter formatter = Formatter.getInstance(ureq.getLocale());
ImsRepositoryResolver resolver = new ImsRepositoryResolver(referenceTestEntry); ImsRepositoryResolver resolver = new ImsRepositoryResolver(referenceTestEntry);
QTIChangeLogMessage[] qtiChangeLog = resolver.getDocumentChangeLog(); QTIChangeLogMessage[] qtiChangeLog = resolver.getDocumentChangeLog();
StringBuilder qtiChangelog = new StringBuilder(); StringBuilder qtiChangelog = new StringBuilder();
if(qtiChangeLog.length>0){ if(qtiChangeLog.length>0){
List<QTIChangeLogMessage> qtiChangeLogList = new ArrayList<>(qtiChangeLog.length);
for (int i=qtiChangeLog.length; i-->0 ; ) {
if(qtiChangeLog[i] != null) {
qtiChangeLogList.add(qtiChangeLog[i]);
}
}
//there are resource changes //there are resource changes
Arrays.sort(qtiChangeLog); Collections.sort(qtiChangeLogList);
for (int i = qtiChangeLog.length-1; i >= 0 ; i--) {
for (int i = qtiChangeLogList.size()-1; i >= 0 ; i--) {
QTIChangeLogMessage qtiChangeLogEntry = qtiChangeLogList.get(i);
//show latest change first //show latest change first
if(!showAll && qtiChangeLog[i].isPublic()){ if(!showAll && qtiChangeLogEntry.isPublic()){
//logged in person is a normal user, hence public messages only //logged in person is a normal user, hence public messages only
Date msgDate = new Date(qtiChangeLog[i].getTimestmp()); Date msgDate = new Date(qtiChangeLogEntry.getTimestmp());
qtiChangelog.append("\nChange date: ").append(formatter.formatDateAndTime(msgDate)).append("\n"); qtiChangelog.append("\nChange date: ").append(formatter.formatDateAndTime(msgDate)).append("\n");
String msg = StringHelper.escapeHtml(qtiChangeLog[i].getLogMessage()); String msg = StringHelper.escapeHtml(qtiChangeLogEntry.getLogMessage());
qtiChangelog.append(msg); qtiChangelog.append(msg);
qtiChangelog.append("\n********************************\n"); qtiChangelog.append("\n********************************\n");
}else if (showAll){ }else if (showAll){
//logged in person is an author, olat admin, owner, show all messages //logged in person is an author, olat admin, owner, show all messages
Date msgDate = new Date(qtiChangeLog[i].getTimestmp()); Date msgDate = new Date(qtiChangeLogEntry.getTimestmp());
qtiChangelog.append("\nChange date: ").append(formatter.formatDateAndTime(msgDate)).append("\n"); qtiChangelog.append("\nChange date: ").append(formatter.formatDateAndTime(msgDate)).append("\n");
String msg = StringHelper.escapeHtml(qtiChangeLog[i].getLogMessage()); String msg = StringHelper.escapeHtml(qtiChangeLogEntry.getLogMessage());
qtiChangelog.append(msg); qtiChangelog.append(msg);
qtiChangelog.append("\n********************************\n"); qtiChangelog.append("\n********************************\n");
}//else non public messages are not shown to normal user }//else non public messages are not shown to normal user
......
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