public Map<String, Object> deleteEvent(String identifier) throws PortalException, SystemException, DotDataException, DotSecurityException { HibernateUtil.startTransaction(); WebContext ctx = WebContextFactory.get(); HttpServletRequest request = ctx.getHttpServletRequest(); List<String> eventDeleteErrors = new ArrayList<String>(); Map<String, Object> callbackData = new HashMap<String, Object>(); // Retrieving the current user User user = userAPI.getLoggedInUser(request); boolean respectFrontendRoles = true; Event ev = eventAPI.find(identifier, false, user, respectFrontendRoles); if (ev.isLive()) { try { contAPI.unpublish(ev, user, respectFrontendRoles); } catch (DotSecurityException e) { eventDeleteErrors.add(e.getLocalizedMessage()); } catch (DotDataException e) { eventDeleteErrors.add(e.getLocalizedMessage()); } catch (DotContentletStateException e) { eventDeleteErrors.add(e.getLocalizedMessage()); } try { contAPI.archive(ev, user, respectFrontendRoles); } catch (Exception e) { eventDeleteErrors.add(e.getLocalizedMessage()); } } else if (!ev.isArchived()) { try { contAPI.archive(ev, user, respectFrontendRoles); } catch (Exception e) { eventDeleteErrors.add(e.getLocalizedMessage()); } } try { if (ev.isArchived()) { contAPI.delete(ev, user, respectFrontendRoles); } } catch (Exception e) { eventDeleteErrors.add(e.getLocalizedMessage()); } finally { if (eventDeleteErrors.size() > 0) { callbackData.put("eventUnpublishErrors", eventDeleteErrors); } } if (eventDeleteErrors.size() <= 0) { HibernateUtil.commitTransaction(); } // At this point we already deleted the content from the index on the delete call /*if(!contAPI.isInodeIndexed(ev.getInode())){ Logger.error(this, "Timed out while waiting for index to return"); }*/ return callbackData; }
public void archiveDisconnectedEvent(String identifier, boolean putBack) throws PortalException, SystemException, DotDataException, DotSecurityException { HibernateUtil.startTransaction(); WebContext ctx = WebContextFactory.get(); HttpServletRequest request = ctx.getHttpServletRequest(); // Retrieving the current user User user = userAPI.getLoggedInUser(request); boolean respectFrontendRoles = true; Event ev = eventAPI.find(identifier, false, user, respectFrontendRoles); if (putBack) { Event baseEvent = null; try { baseEvent = eventAPI.find(ev.getDisconnectedFrom(), false, user, respectFrontendRoles); } catch (Exception e) { Logger.error(this, "Base event not found"); } if (baseEvent != null) { try { Date originalStartDate = ev.getOriginalStartDate(); baseEvent.deleteDateToIgnore(originalStartDate); APILocator.getContentletAPI() .checkin( baseEvent, categoryAPI.getParents(baseEvent, user, true), perAPI.getPermissions(baseEvent), user, false); } catch (Exception e) { Logger.error(this, "Could not put back event in recurrence"); } } } contAPI.archive(ev, user, respectFrontendRoles); HibernateUtil.commitTransaction(); if (!contAPI.isInodeIndexed(ev.getInode())) { Logger.error(this, "Timed out while waiting for index to return"); } }
public void archiveEvent(String identifier) throws PortalException, SystemException, DotDataException, DotSecurityException { HibernateUtil.startTransaction(); WebContext ctx = WebContextFactory.get(); HttpServletRequest request = ctx.getHttpServletRequest(); // Retrieving the current user User user = userAPI.getLoggedInUser(request); boolean respectFrontendRoles = true; Event ev = eventAPI.find(identifier, false, user, respectFrontendRoles); try { contAPI.archive(ev, user, respectFrontendRoles); } catch (Exception e) { Logger.error(this, e.getMessage()); } HibernateUtil.commitTransaction(); if (!contAPI.isInodeIndexed(ev.getInode())) { Logger.error(this, "Timed out while waiting for index to return"); } }