List of usage examples for org.joda.time.format DateTimeFormatter print
public String print(ReadablePartial partial)
From source file:com.sonicle.webtop.calendar.PublicService.java
License:Open Source License
private String buildWhenString(Calendar calendar, Event event) { CoreUserSettings cus = new CoreUserSettings(calendar.getProfileId()); String pattern = cus.getShortDateFormat() + " " + cus.getShortTimeFormat(); DateTimeZone etz = DateTimeZone.forID(event.getTimezone()); DateTimeFormatter dtFmt = DateTimeUtils.createFormatter(pattern, etz); return MessageFormat.format("{0} - {1}", dtFmt.print(event.getStartDate()), dtFmt.print(event.getEndDate())); }
From source file:com.sonicle.webtop.calendar.Service.java
License:Open Source License
@Override public ServiceVars returnServiceVars() { DateTimeFormatter hmf = DateTimeUtils.createHmFormatter(); ServiceVars co = new ServiceVars(); co.put("calendarRemoteSyncEnabled", ss.getCalendarRemoteAutoSyncEnabled()); co.put("eventStatFieldsVisible", ss.getEventStatisticFieldsVisible()); co.put("defaultCalendarSync", EnumUtils.toSerializedName(ss.getDefaultCalendarSync())); co.put("view", us.getView()); co.put("workdayStart", hmf.print(us.getWorkdayStart())); co.put("workdayEnd", hmf.print(us.getWorkdayEnd())); return co;/*from w ww . j a v a 2s . c o m*/ }
From source file:com.sonicle.webtop.calendar.Service.java
License:Open Source License
public void processExportForErp(HttpServletRequest request, HttpServletResponse response, PrintWriter out) { UserProfile up = getEnv().getProfile(); try {//from w w w .j a v a 2 s .c o m String op = ServletUtils.getStringParameter(request, "op", true); if (op.equals("do")) { String fromDate = ServletUtils.getStringParameter(request, "fromDate", true); String toDate = ServletUtils.getStringParameter(request, "toDate", true); DateTimeFormatter ymd = DateTimeUtils.createYmdFormatter(up.getTimeZone()); erpWizard = new ErpExportWizard(); erpWizard.fromDate = ymd.parseDateTime(fromDate).withTimeAtStartOfDay(); erpWizard.toDate = DateTimeUtils.withTimeAtEndOfDay(ymd.parseDateTime(toDate)); LogEntries log = new LogEntries(); File file = WT.createTempFile(); try { DateTimeFormatter ymd2 = DateTimeUtils.createFormatter("yyyyMMdd", up.getTimeZone()); DateTimeFormatter ymdhms = DateTimeUtils.createFormatter("yyyy-MM-dd HH:mm:ss", up.getTimeZone()); try (FileOutputStream fos = new FileOutputStream(file)) { log.addMaster(new MessageLogEntry(LogEntry.Level.INFO, "Started on {0}", ymdhms.print(new DateTime()))); manager.exportEvents(log, erpWizard.fromDate, erpWizard.toDate, fos); log.addMaster(new MessageLogEntry(LogEntry.Level.INFO, "Ended on {0}", ymdhms.print(new DateTime()))); erpWizard.file = file; erpWizard.filename = MessageFormat.format(ERP_EXPORT_FILENAME, up.getDomainId(), ymd2.print(erpWizard.fromDate), ymd2.print(erpWizard.fromDate), "csv"); log.addMaster( new MessageLogEntry(LogEntry.Level.INFO, "File ready: {0}", erpWizard.filename)); log.addMaster(new MessageLogEntry(LogEntry.Level.INFO, "Operation completed succesfully")); new JsonResult(new JsWizardData(log.print())).printTo(out); } } catch (Throwable t) { logger.error("Error generating export", t); file.delete(); new JsonResult(new JsWizardData(log.print())).setSuccess(false).printTo(out); } } } catch (Exception ex) { logger.error("Error in ExportForErp", ex); new JsonResult(false, ex.getMessage()).printTo(out); } }
From source file:com.sonicle.webtop.calendar.Service.java
License:Open Source License
public void processGetPlanning(HttpServletRequest request, HttpServletResponse response, PrintWriter out) { CoreUserSettings cus = getEnv().getCoreUserSettings(); CoreManager core = WT.getCoreManager(); ArrayList<MapItem> items = new ArrayList<>(); Connection con = null;/*from w ww . java2s . c o m*/ try { String eventStartDate = ServletUtils.getStringParameter(request, "startDate", true); String eventEndDate = ServletUtils.getStringParameter(request, "endDate", true); String timezone = ServletUtils.getStringParameter(request, "timezone", true); JsEvent.Attendee.List attendees = ServletUtils.getObjectParameter(request, "attendees", new JsEvent.Attendee.List(), JsEvent.Attendee.List.class); //JsAttendeeList attendees = ServletUtils.getObjectParameter(request, "attendees", new JsAttendeeList(), JsAttendeeList.class); // Parses string parameters DateTimeZone eventTz = DateTimeZone.forID(timezone); DateTime eventStartDt = DateTimeUtils.parseYmdHmsWithZone(eventStartDate, eventTz); DateTime eventEndDt = DateTimeUtils.parseYmdHmsWithZone(eventEndDate, eventTz); UserProfile up = getEnv().getProfile(); DateTimeZone profileTz = up.getTimeZone(); LocalTime localStartTime = eventStartDt.toLocalTime(); LocalTime localEndTime = eventEndDt.toLocalTime(); LocalTime fromTime = DateTimeUtils.min(localStartTime, us.getWorkdayStart()); LocalTime toTime = DateTimeUtils.max(localEndTime, us.getWorkdayEnd()); // Defines useful date/time formatters DateTimeFormatter ymdhmFmt = DateTimeUtils.createYmdHmFormatter(); DateTimeFormatter tFmt = DateTimeUtils.createFormatter(cus.getShortTimeFormat()); DateTimeFormatter dFmt = DateTimeUtils.createFormatter(cus.getShortDateFormat()); ArrayList<String> spans = manager.generateTimeSpans(60, eventStartDt.toLocalDate(), eventEndDt.toLocalDate(), us.getWorkdayStart(), us.getWorkdayEnd(), profileTz); // Generates fields and columnsInfo dynamically ArrayList<FieldMeta> fields = new ArrayList<>(); ArrayList<GridColumnMeta> colsInfo = new ArrayList<>(); GridColumnMeta col = null; fields.add(new FieldMeta("recipient")); colsInfo.add(new GridColumnMeta("recipient")); for (String spanKey : spans) { LocalDateTime ldt = ymdhmFmt.parseLocalDateTime(spanKey); fields.add(new FieldMeta(spanKey)); col = new GridColumnMeta(spanKey, tFmt.print(ldt)); col.put("date", dFmt.print(ldt)); col.put("overlaps", (ldt.compareTo(eventStartDt.toLocalDateTime()) >= 0) && (ldt.compareTo(eventEndDt.toLocalDateTime()) < 0)); colsInfo.add(col); } // Collects attendees availability... OUser user = null; UserProfileId profileId = null; LinkedHashSet<String> busyHours = null; MapItem item = null; for (JsEvent.Attendee attendee : attendees) { item = new MapItem(); item.put("recipient", attendee.recipient); user = guessUserByAttendee(core, attendee.recipient); if (user != null) { profileId = new UserProfileId(user.getDomainId(), user.getUserId()); busyHours = manager.calculateAvailabilitySpans(60, profileId, eventStartDt.withTime(fromTime), eventEndDt.withTime(toTime), eventTz, true); for (String hourKey : spans) { item.put(hourKey, busyHours.contains(hourKey) ? "busy" : "free"); } } else { for (String spanKey : spans) { item.put(spanKey, "unknown"); } } items.add(item); } GridMetadata meta = new GridMetadata(true); meta.setFields(fields); meta.setColumnsInfo(colsInfo); new JsonResult(items, meta, items.size()).printTo(out); } catch (Exception ex) { logger.error("Error in GetPlanning", ex); new JsonResult(false, "Error").printTo(out); } finally { DbUtils.closeQuietly(con); } }
From source file:com.sonicle.webtop.calendar.TplHelper.java
License:Open Source License
private static String buildEventTitle(Locale locale, String dateFormat, String timeFormat, EventFootprint event) {/*from w w w .j a va2s . c o m*/ DateTimeZone etz = DateTimeZone.forID(event.getTimezone()); DateTimeFormatter fmt = DateTimeUtils.createFormatter(dateFormat + " " + timeFormat, etz); StringBuilder sb = new StringBuilder(); sb.append(StringUtils.abbreviate(event.getTitle(), 30)); sb.append(" @"); if (!StringUtils.isEmpty(event.getRecurrenceRule())) { RRuleStringify.Strings strings = WT.getRRuleStringifyStrings(locale); RRuleStringify rrs = new RRuleStringify(strings, etz); sb.append(" ("); sb.append(rrs.toHumanReadableFrequencyQuietly(event.getRecurrenceRule())); sb.append(")"); } //TODO: solo l'orario se date coincidono!!! sb.append(" "); sb.append(fmt.print(event.getStartDate())); sb.append(" - "); sb.append(fmt.print(event.getEndDate())); return sb.toString(); }
From source file:com.sonicle.webtop.calendar.TplHelper.java
License:Open Source License
public static String buildEventModificationBody(Locale locale, String dateFormat, String timeFormat, EventFootprint event) throws IOException, TemplateException, AddressException { DateTimeZone etz = DateTimeZone.forID(event.getTimezone()); MapItem i18n = new MapItem(); i18n.put("whenStart", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHEN_START)); i18n.put("whenEnd", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHEN_END)); i18n.put("where", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHERE)); i18n.put("whereMap", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHERE_MAP)); DateTimeFormatter fmt = DateTimeUtils.createFormatter(dateFormat + " " + timeFormat, etz); MapItem evt = new MapItem(); evt.put("timezone", event.getTimezone()); evt.put("startDate", fmt.print(event.getStartDate())); evt.put("endDate", fmt.print(event.getEndDate())); evt.put("occurs", null); if (!StringUtils.isEmpty(event.getRecurrenceRule())) { RRuleStringify.Strings strings = WT.getRRuleStringifyStrings(locale); RRuleStringify rrs = new RRuleStringify(strings, etz); evt.put("occurs", rrs.toHumanReadableTextQuietly(event.getRecurrenceRule())); }//from w w w . j a v a 2 s .c om evt.put("location", StringUtils.defaultIfBlank(event.getLocation(), null)); evt.put("locationUrl", TplHelper.buildGoogleMapsUrl(event.getLocation())); MapItem vars = new MapItem(); vars.put("i18n", i18n); vars.put("event", evt); return WT.buildTemplate(SERVICE_ID, "tpl/email/eventModification-body.html", vars); }
From source file:com.sonicle.webtop.calendar.TplHelper.java
License:Open Source License
public static String buildTplEventInvitationBody(Locale locale, String dateFormat, String timeFormat, Event event, String crud, String recipientEmail, String servicePublicUrl) throws IOException, TemplateException, AddressException { DateTimeZone etz = DateTimeZone.forID(event.getTimezone()); MapItem i18n = new MapItem(); i18n.put("whenStart", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHEN_START)); i18n.put("whenEnd", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHEN_END)); i18n.put("where", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHERE)); i18n.put("whereMap", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHERE_MAP)); i18n.put("organizer", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_ORGANIZER)); i18n.put("who", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHO)); i18n.put("going", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_GOING)); i18n.put("goingToAll", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_GOINGTOALL)); i18n.put("goingYes", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_GOING_YES)); i18n.put("goingMaybe", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_GOING_MAYBE)); i18n.put("goingNo", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_GOING_NO)); i18n.put("view", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_VIEW)); DateTimeFormatter fmt = DateTimeUtils.createFormatter(dateFormat + " " + timeFormat, etz); MapItem evt = new MapItem(); evt.put("title", StringUtils.defaultIfBlank(event.getTitle(), "")); evt.put("description", StringUtils.defaultIfBlank(event.getDescription(), null)); evt.put("timezone", event.getTimezone()); evt.put("startDate", fmt.print(event.getStartDate())); evt.put("endDate", fmt.print(event.getEndDate())); evt.put("occurs", null); if (!StringUtils.isEmpty(event.getRecurrenceRule())) { RRuleStringify.Strings strings = WT.getRRuleStringifyStrings(locale); RRuleStringify rrs = new RRuleStringify(strings, etz); evt.put("occurs", rrs.toHumanReadableTextQuietly(event.getRecurrenceRule())); }// ww w. j av a2 s . c o m evt.put("location", StringUtils.defaultIfBlank(event.getLocation(), null)); evt.put("locationUrl", TplHelper.buildGoogleMapsUrl(event.getLocation())); evt.put("organizer", StringUtils.defaultIfBlank(event.getOrganizerCN(), event.getOrganizerAddress())); String recipientAttendeeId = null; MapItemList evtAtts = new MapItemList(); for (EventAttendee attendee : event.getAttendees()) { MapItem item = new MapItem(); String cn = attendee.getCN(); String address = attendee.getAddress(); if (StringUtils.equals(address, recipientEmail)) recipientAttendeeId = attendee.getAttendeeId(); item.put("cn", StringUtils.isBlank(cn) ? null : cn); item.put("address", StringUtils.isBlank(address) ? null : address); evtAtts.add(item); } String viewUrl = CalendarManager.buildEventPublicUrl(servicePublicUrl, event.getPublicUid()); MapItem vars = new MapItem(); vars.put("i18n", i18n); vars.put("event", evt); vars.put("eventAttendees", evtAtts); if (!StringUtils.equals(crud, "delete")) { vars.put("replyYesUrl", (recipientAttendeeId == null) ? null : CalendarManager.buildEventReplyPublicUrl(servicePublicUrl, event.getPublicUid(), recipientAttendeeId, "yes")); vars.put("replyMaybeUrl", (recipientAttendeeId == null) ? null : CalendarManager.buildEventReplyPublicUrl(servicePublicUrl, event.getPublicUid(), recipientAttendeeId, "maybe")); vars.put("replyNoUrl", (recipientAttendeeId == null) ? null : CalendarManager.buildEventReplyPublicUrl(servicePublicUrl, event.getPublicUid(), recipientAttendeeId, "no")); vars.put("viewUrl", viewUrl); } return WT.buildTemplate(SERVICE_ID, "tpl/email/eventInvitation-body.html", vars); }
From source file:com.sonicle.webtop.calendar.TplHelper.java
License:Open Source License
public static String buildTplResponseUpdateBody(Locale locale, String dateFormat, String timeFormat, Event event, String servicePublicUrl) throws IOException, TemplateException, AddressException { DateTimeZone etz = DateTimeZone.forID(event.getTimezone()); MapItem i18n = new MapItem(); i18n.put("whenStart", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHEN_START)); i18n.put("whenEnd", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHEN_END)); i18n.put("where", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHERE)); i18n.put("whereMap", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHERE_MAP)); i18n.put("view", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_VIEW)); DateTimeFormatter fmt = DateTimeUtils.createFormatter(dateFormat + " " + timeFormat, etz); MapItem evt = new MapItem(); evt.put("title", StringUtils.defaultIfBlank(event.getTitle(), "")); evt.put("timezone", event.getTimezone()); evt.put("startDate", fmt.print(event.getStartDate())); evt.put("endDate", fmt.print(event.getEndDate())); evt.put("occurs", null); if (!StringUtils.isEmpty(event.getRecurrenceRule())) { RRuleStringify.Strings strings = WT.getRRuleStringifyStrings(locale); RRuleStringify rrs = new RRuleStringify(strings, etz); evt.put("occurs", rrs.toHumanReadableTextQuietly(event.getRecurrenceRule())); }// ww w. j ava 2 s . c o m evt.put("location", StringUtils.defaultIfBlank(event.getLocation(), null)); evt.put("locationUrl", TplHelper.buildGoogleMapsUrl(event.getLocation())); String viewUrl = CalendarManager.buildEventPublicUrl(servicePublicUrl, event.getPublicUid()); MapItem vars = new MapItem(); vars.put("i18n", i18n); vars.put("event", evt); vars.put("viewUrl", viewUrl); return WT.buildTemplate(SERVICE_ID, "tpl/email/responseUpdate-body.html", vars); }
From source file:com.sonicle.webtop.calendar.TplHelper.java
License:Open Source License
public static String buildTplEventReminderBody(Locale locale, String dateFormat, String timeFormat, Event event) throws IOException, TemplateException, AddressException { DateTimeZone etz = DateTimeZone.forID(event.getTimezone()); MapItem i18n = new MapItem(); i18n.put("whenStart", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHEN_START)); i18n.put("whenEnd", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHEN_END)); i18n.put("where", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHERE)); i18n.put("whereMap", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHERE_MAP)); i18n.put("organizer", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_ORGANIZER)); i18n.put("who", WT.lookupResource(SERVICE_ID, locale, CalendarLocale.TPL_EMAIL_INVITATION_WHO)); DateTimeFormatter fmt = DateTimeUtils.createFormatter(dateFormat + " " + timeFormat, etz); MapItem evt = new MapItem(); evt.put("title", StringUtils.defaultIfBlank(event.getTitle(), "")); evt.put("description", StringUtils.defaultIfBlank(event.getDescription(), null)); evt.put("timezone", event.getTimezone()); evt.put("startDate", fmt.print(event.getStartDate())); evt.put("endDate", fmt.print(event.getEndDate())); evt.put("location", StringUtils.defaultIfBlank(event.getLocation(), null)); evt.put("locationUrl", TplHelper.buildGoogleMapsUrl(event.getLocation())); evt.put("organizer", StringUtils.defaultIfBlank(event.getOrganizerCN(), event.getOrganizerAddress())); MapItemList evtAtts = new MapItemList(); for (EventAttendee attendee : event.getAttendees()) { MapItem item = new MapItem(); String cn = attendee.getCN(); String address = attendee.getAddress(); item.put("cn", StringUtils.isBlank(cn) ? null : cn); item.put("address", StringUtils.isBlank(address) ? null : address); evtAtts.add(item);/*from w ww.j a v a2 s .c om*/ } MapItem vars = new MapItem(); vars.put("i18n", i18n); vars.put("event", evt); vars.put("eventAttendees", evtAtts); return WT.buildTemplate(SERVICE_ID, "tpl/email/eventInvitation-body.html", vars); }
From source file:com.sonicle.webtop.calendar.UserOptionsService.java
License:Open Source License
@Override public void processUserOptions(HttpServletRequest request, HttpServletResponse response, PrintWriter out) { Connection con = null;/*from w ww . jav a2 s . co m*/ try { String crud = ServletUtils.getStringParameter(request, "crud", true); CalendarUserSettings cus = new CalendarUserSettings(SERVICE_ID, getTargetProfileId()); DateTimeFormatter hmf = DateTimeUtils.createHmFormatter(); if (crud.equals(Crud.READ)) { JsUserOptions jso = new JsUserOptions(getTargetProfileId().toString()); // Main jso.view = cus.getView(); jso.workdayStart = hmf.print(cus.getWorkdayStart()); jso.workdayEnd = hmf.print(cus.getWorkdayEnd()); jso.eventReminderDelivery = cus.getEventReminderDelivery(); new JsonResult(jso).printTo(out); } else if (crud.equals(Crud.UPDATE)) { Payload<MapItem, JsUserOptions> pl = ServletUtils.getPayload(request, JsUserOptions.class); // Main if (pl.map.has("view")) cus.setView(pl.data.view); if (pl.map.has("workdayStart")) cus.setWorkdayStart(hmf.parseLocalTime(pl.data.workdayStart)); if (pl.map.has("workdayEnd")) cus.setWorkdayEnd(hmf.parseLocalTime(pl.data.workdayEnd)); if (pl.map.has("eventReminderDelivery")) cus.setEventReminderDelivery(pl.data.eventReminderDelivery); new JsonResult().printTo(out); } } catch (Exception ex) { logger.error("Error executing UserOptions", ex); new JsonResult(false).printTo(out); } finally { DbUtils.closeQuietly(con); } }