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

Merge OpenOLAT 10.4 to OpenOLAT default branch with f9e1dd55447bf7d24d3c360eef4ce3dd1f31e666

parents c909f63d c3bb0365
No related branches found
No related tags found
No related merge requests found
......@@ -135,3 +135,4 @@ d355c6357d0e5aeb25fc978b747824447a214b88 OpenOLAT 10.4.5
fef7f6b2e2628d242e93f86d208f4cfb9c807d7c OpenOLAT 10.4.6
b38ed621ea53507fbf41eb616648ebad2340e613 OpenOLAT 10.4.7
273a6270a08460c07fdfbb53e31547b9c7e1c8c9 OpenOLAT 10.4.8
6cea4865f4e8ea7978eb90f82662bdfa4132dbcb OpenOLAT 10.4.9
......@@ -46,6 +46,7 @@ import org.olat.commons.calendar.model.ImportedCalendar;
import org.olat.commons.calendar.model.Kalendar;
import org.olat.commons.calendar.model.KalendarComparator;
import org.olat.commons.calendar.ui.components.KalendarRenderWrapper;
import org.olat.core.commons.persistence.DB;
import org.olat.core.id.Identity;
import org.olat.core.logging.OLog;
import org.olat.core.logging.Tracing;
......@@ -69,6 +70,10 @@ import net.fortuna.ical4j.model.Calendar;
public class ImportCalendarManager {
private static final OLog log = Tracing.createLoggerFor(ImportCalendarManager.class);
private static final int RELOAD_INTERVAL = 3600000;
@Autowired
private DB dbInstance;
@Autowired
private CalendarModule calendarModule;
@Autowired
......@@ -147,20 +152,11 @@ public class ImportCalendarManager {
List<ImportedCalendar> importedCalendars = importedCalendarDao.getImportedCalendars(identity);
for (ImportedCalendar importedCalendar: importedCalendars) {
String calendarId = importedCalendar.getCalendarId();
String url = importedCalendar.getUrl();
if(reload) {
Date lastUpdate = importedCalendar.getLastUpdate();
if (url != null && (timestamp - lastUpdate.getTime() > 3600000)) {
log.info("Calendar reload started from url=" + url);
reloadCalendarFromUrl(url, CalendarManager.TYPE_USER, calendarId);
importedCalendar.setLastUpdate(new Date());
importedCalendar = importedCalendarDao.update(importedCalendar);
log.info("Calendar reloaded from url=" + url);
}
reloadImportCalendar(importedCalendar, timestamp);
}
String calendarId = importedCalendar.getCalendarId();
KalendarRenderWrapper calendarWrapper = calendarManager.getImportedCalendar(identity, calendarId);
calendarWrapper.setDisplayName(importedCalendar.getDisplayName());
calendarWrapper.setAccess(KalendarRenderWrapper.ACCESS_READ_ONLY);
......@@ -177,28 +173,16 @@ public class ImportCalendarManager {
}
public List<CalendarFileInfos> getImportedCalendarInfosForIdentity(Identity identity, boolean reload) {
// initialize the calendars list
List<CalendarFileInfos> calendars = new ArrayList<CalendarFileInfos>();
if(calendarModule.isEnabled() && calendarModule.isEnablePersonalCalendar()) {
long timestamp = System.currentTimeMillis();
List<ImportedCalendar> importedCalendars = importedCalendarDao.getImportedCalendars(identity);
for (ImportedCalendar importedCalendar: importedCalendars) {
String calendarId = importedCalendar.getCalendarId();
String url = importedCalendar.getUrl();
if(reload) {
Date lastUpdate = importedCalendar.getLastUpdate();
if (url != null && (timestamp - lastUpdate.getTime() > 3600000)) {
log.info("Calendar reload started from url=" + url);
reloadCalendarFromUrl(url, CalendarManager.TYPE_USER, calendarId);
importedCalendar.setLastUpdate(new Date());
importedCalendar = importedCalendarDao.update(importedCalendar);
log.info("Calendar reloaded from url=" + url);
}
reloadImportCalendar(importedCalendar, timestamp);
}
String calendarId = importedCalendar.getCalendarId();
File calendarFile = calendarManager.getCalendarFile(CalendarManager.TYPE_USER, calendarId);
CalendarFileInfos calendarInfos = new CalendarFileInfos(calendarId, CalendarManager.TYPE_USER, calendarFile);
calendars.add(calendarInfos);
......@@ -206,6 +190,21 @@ public class ImportCalendarManager {
}
return calendars;
}
private void reloadImportCalendar(ImportedCalendar importedCalendar, long timestamp) {
String url = importedCalendar.getUrl();
Date lastUpdate = importedCalendar.getLastUpdate();
if (url != null && (timestamp - lastUpdate.getTime() > RELOAD_INTERVAL)) {
log.info("Calendar reload started from url=" + url);
importedCalendar.setLastUpdate(new Date());
importedCalendar = importedCalendarDao.update(importedCalendar);
dbInstance.commit();
String calendarId = importedCalendar.getCalendarId();
reloadCalendarFromUrl(url, CalendarManager.TYPE_USER, calendarId);
log.info("Calendar reloaded from url=" + url);
}
}
/**
* Reload calendar from url and store calendar file locally.
......
......@@ -91,6 +91,7 @@ public class GroupTaskPage {
By uploadButtonBy = By.cssSelector("#" + stepId + " .o_sel_course_gta_submit_file");
browser.findElement(uploadButtonBy).click();
OOGraphene.waitBusy(browser);
OOGraphene.waitModalDialog(browser);
By inputBy = By.cssSelector(".o_fileinput input[type='file']");
OOGraphene.uploadFile(inputBy, file, browser);
......@@ -106,6 +107,7 @@ public class GroupTaskPage {
By uploadButtonBy = By.cssSelector("#o_step_submit_content .o_sel_course_gta_create_doc");
browser.findElement(uploadButtonBy).click();
OOGraphene.waitBusy(browser);
OOGraphene.waitModalDialog(browser);
By filenameBy = By.cssSelector(".o_sel_course_gta_doc_filename input[type='text']");
browser.findElement(filenameBy).sendKeys(filename);
......
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