/** * @param master * @param startDay day of event (startDate and endDate will be calculated based on this day and the master). */ public TeamRecurrenceEvent(final TeamEventDO master, final Calendar startDate) { this.master = master; final Calendar cal = (Calendar) startDate.clone(); this.startDate = cal.getTime(); final long duration = master.getEndDate().getTime() - master.getStartDate().getTime(); cal.add(Calendar.MINUTE, (int) (duration / 60000)); this.endDate = cal.getTime(); }
@Override public String getObject() { final StringBuffer buf = new StringBuffer(); if (data.getStartDate() != null) { buf.append(DateHelper.TECHNICAL_ISO_UTC.get().format(data.getStartDate())); if (data.getEndDate() != null) { buf.append(" - "); } } if (data.getEndDate() != null) { buf.append(DateHelper.TECHNICAL_ISO_UTC.get().format(data.getEndDate())); } return buf.toString(); } });
private boolean matches(final TeamEventDO teamEventDo, Long startTime, Long endTime) { // Following period extension is needed due to all day events which are stored in UTC. The additional events in the result list not // matching the time period have to be removed by caller! startTime = startTime - ONE_DAY; endTime = endTime + ONE_DAY; // the following implementation is inspired by TeamEventDao with the following lines: // queryFilter.add(Restrictions.or( // (Restrictions.or(Restrictions.between("startDate", startDate, endDate), Restrictions.between("endDate", startDate, endDate))), // // get events whose duration overlap with chosen duration. // (Restrictions.and(Restrictions.le("startDate", startDate), Restrictions.ge("endDate", endDate))))); final Long eventStartTime = teamEventDo.getStartDate() != null ? teamEventDo.getStartDate().getTime() : TeamEventDao.MIN_DATE_1800; final Long eventEndTime = teamEventDo.getEndDate() != null ? teamEventDo.getEndDate().getTime() : TeamEventDao.MAX_DATE_3000; if (between(eventStartTime, startTime, endTime) || between(eventEndTime, startTime, endTime)) { return true; } if (eventStartTime <= startTime && eventEndTime >= endTime) { return true; } return false; }
@Override public Property toVEvent(final TeamEventDO event) { net.fortuna.ical4j.model.Date date; if (event.isAllDay() == true) { final Date endUtc = CalendarUtils.getUTCMidnightDate(event.getEndDate()); final org.joda.time.DateTime jodaTime = new org.joda.time.DateTime(endUtc); // TODO sn should not be done // requires plus 1 because one day will be omitted by calendar. final net.fortuna.ical4j.model.Date fortunaEndDate = new net.fortuna.ical4j.model.Date(jodaTime.plusDays(1).toDate()); date = new net.fortuna.ical4j.model.Date(fortunaEndDate.getTime()); } else { date = new DateTime(event.getEndDate()); ((net.fortuna.ical4j.model.DateTime) date).setTimeZone(TIMEZONE_REGISTRY.getTimeZone(event.getTimeZone().getID())); } return new DtEnd(date); }
startDate.setTime(event.getStartDate()); Calendar endDate = Calendar.getInstance(timezone); endDate.setTime(event.getEndDate());
teamEventDO.setEndDate(new Timestamp(teamEventDO.getEndDate().getTime() + endDateMove));
@Override public void onClick() { final TimesheetDO timesheet = new TimesheetDO(); timesheet.setStartDate(getData().getStartDate())// .setStopTime(getData().getEndDate()) // .setLocation(getData().getLocation()); final StringBuffer buf = new StringBuffer(); buf.append(getData().getSubject()); final String note = getData().getNote(); if (StringUtils.isNotBlank(note) == true) { buf.append("\n").append(note); } timesheet.setDescription(buf.toString()); timesheetDao.setUser(timesheet, getUserId()); final TimesheetEditPage timesheetEditPage = new TimesheetEditPage(timesheet); timesheetEditPage.setReturnToPage(getReturnToPage()); setResponsePage(timesheetEditPage); }
if (list != null) { for (final TeamEventDO event : list) { if (matches(event.getStartDate(), event.getEndDate(), event.isAllDay(), teamEventFilter) == true) { result.add(event);
/** * Sets midnight (UTC) of all day events. * * @see org.projectforge.framework.persistence.api.BaseDao#onSaveOrModify(org.projectforge.core.ExtendedBaseDO) */ @Override protected void onSaveOrModify(final TeamEventDO event) { super.onSaveOrModify(event); Validate.notNull(event.getCalendar()); // If is all day event, set start and stop to midnight if (event.isAllDay() == true) { final Date startDate = event.getStartDate(); if (startDate != null) { event.setStartDate(CalendarUtils.getUTCMidnightTimestamp(startDate)); } final Date endDate = event.getEndDate(); if (endDate != null) { event.setEndDate(CalendarUtils.getUTCMidnightTimestamp(endDate)); } } }
Assert.assertEquals(event.getEndDate().getTime(), DateHelper.parseIsoTimestamp("2020-01-01 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime());
@Override public void onSubmit() { final TeamEventDO event = getData(); final TimesheetDO timesheet = new TimesheetDO(); if (event != null) { timesheet.setStartDate(event.getStartDate()); timesheet.setStopTime(event.getEndDate()); } if (returnToPage == null) { returnToPage = new TeamCalCalendarPage(new PageParameters()); } setResponsePage(new TimesheetEditPage(timesheet).setReturnToPage(returnToPage)); }
Assert.assertEquals(eventExtracted.getStartDate(), eventSrc.getStartDate()); } else if (VEVENT_DTEND.equals(field)) { Assert.assertEquals(eventExtracted.getEndDate(), eventSrc.getEndDate()); } else if (VEVENT_SUMMARY.equals(field)) { Assert.assertEquals(eventExtracted.getSubject(), eventSrc.getSubject()); Assert.assertNull(eventExtracted.getStartDate()); } else if (VEVENT_DTEND.equals(field)) { Assert.assertNull(eventExtracted.getEndDate()); } else if (VEVENT_SUMMARY.equals(field)) { Assert.assertNull(eventExtracted.getSubject());
if (vacationTeamEvent.getStartDate().equals(startTimestamp) == false || vacationTeamEvent.getEndDate().equals(endTimestamp) == false) { vacationTeamEvent.setStartDate(startTimestamp); vacationTeamEvent.setEndDate(endTimestamp);
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-22 15:07:52.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2020-01-01 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2020-01-01 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Test ical import web frontend", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-21 15:07:52.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2020-01-01 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2020-01-01 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Test ical import web frontend (edited)", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:54:55.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Test Anlegen", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:56:14.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Test Anlegen", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:56:52.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-13 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-13 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Test Anlegen", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence());
/** * @see org.projectforge.web.core.importstorage.AbstractImportStoragePanel#addColumns(org.apache.wicket.markup.repeater.RepeatingView, * org.projectforge.framework.persistence.utils.ImportedElement) */ @Override protected void addColumns(final RepeatingView cellRepeater, final ImportedElement<?> element, final String style) { final TeamEventDO event = (TeamEventDO) element.getValue(); addCell(cellRepeater, event.getSubject(), style); addCell(cellRepeater, event.getLocation(), style); addCell(cellRepeater, String.valueOf(event.isAllDay()), style); addCell(cellRepeater, DateTimeFormatter.instance().getFormattedDateTime(event.getStartDate()), style); addCell(cellRepeater, DateTimeFormatter.instance().getFormattedDateTime(event.getEndDate()), style); addCell(cellRepeater, event.getNote(), style); addCell(cellRepeater, event.getRecurrenceRule(), style); addCell(cellRepeater, DateTimeFormatter.instance().getFormattedDate(event.getRecurrenceUntil()), style); } }
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-21 06:34:14.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2021-01-01 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2021-01-01 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Test normaler Event", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-21 06:49:49.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2021-01-01 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2021-01-01 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Test normaler Event (angepasst)", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:43:34.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Neuer Termin", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:44:22.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Test create", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:44:37.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Test create", event.getSubject()); Assert.assertEquals(Integer.valueOf(2), event.getSequence()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:44:53.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-13 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-13 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Test create", event.getSubject()); Assert.assertEquals(Integer.valueOf(4), event.getSequence());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:59:07.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Recurring Dayly", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:59:07.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Recurring Dayly", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:59:07.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Recurring Dayly", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 13:02:24.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-24 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-24 18:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals("Recurring Dayly", event.getSubject()); Assert.assertEquals(Integer.valueOf(0), event.getSequence());