Date startDate = null;
Date endDate = null;
try {
startDate = dateFormat.parse(startDateDate + " " + startDateTime);
} catch (ParseException e) {
ae.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("errors.invalid", "From date"));
saveMessages(request, ae);
return mapping.findForward("addEvent");
}
try {
endDate = dateFormat.parse(endDateDate + " " + endDateTime);
} catch (ParseException e) {
ae.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("errors.invalid", "To date"));
saveMessages(request, ae);
return mapping.findForward("addEvent");
}
try {
endDate = dateFormat.parse(endDateDate + " " + endDateTime);
} catch (ParseException e) {
ae.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("errors.invalid", "To date"));
saveMessages(request, ae);
return mapping.findForward("addEvent");
}
if(!request.getParameter("recurrenceOccurs").equals("never")){
try {
dateOnlyFormat.parse(request.getParameter("recurrenceEnds"));
} catch (ParseException e) {
ae.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("errors.invalid", "Recurrence end date"));
saveMessages(request, ae);
return mapping.findForward("addEvent");
}
}
//Checking for the folder to store the submitted files
Host host = hostWebAPI.getCurrentHost(request);
Event event = new Event();
Language language = langAPI.getDefaultLanguage();
Folder folder = APILocator.getFolderAPI().findFolderByPath(path, host,APILocator.getUserAPI().getSystemUser(),false);
Structure structure = StructureCache.getStructureByName("Event");
event.setStructureInode(structure.getInode());
if (!InodeUtils.isSet(folder.getInode())){
folder = APILocator.getFolderAPI().createFolders(path, host,userAPI.getSystemUser(),false);
}
List<Category> categoriesList = new ArrayList<Category>();
if (categoriesArray != null) {
for (String cat : categoriesArray ) {
Category node = (Category) catAPI.find(cat, currentUser, respectFrontendRoles);
if(node!=null){
categoriesList.add(node);
}
}
}
event.setStartDate(startDate);
event.setEndDate(endDate);
event.setTitle(title);
event.setTags(tags);
event.setLocation(location);
event.setLink(link);
event.setDescription(description);
event.setLanguageId(language.getId());
FileAsset cmsFile = null;
FileAsset cmsImage = null;
//Get file type parameters
if (request instanceof UploadServletRequest)
{
UploadServletRequest uploadReq = (UploadServletRequest) request;
java.io.File file = uploadReq.getFile("file");
java.io.File image = uploadReq.getFile("image");
if(file != null && file.length() > 0) {
String fileName = uploadReq.getFileName("file");
cmsFile = saveFile(currentUser, host, file, folder, fileName);
event.setProperty("file", cmsFile.getIdentifier());
}
if(image != null && image.length() > 0) {
String fileName = uploadReq.getFileName("image");
cmsImage = saveFile(currentUser, host, image, folder, fileName);
event.setProperty("image", cmsImage.getIdentifier());
}
}
try {
PermissionAPI perAPI = APILocator.getPermissionAPI();
List<Permission> pers = perAPI.getPermissions(event.getStructure());
APILocator.getContentletAPI().checkin(event, categoriesList, pers, currentUser, false);
APILocator.getVersionableAPI().setWorking(event);
} catch (DotContentletValidationException ex) {
Map<String, List<Field>> fields = ex.getNotValidFields();
List<Field> reqFields = fields.get("required");
for(Field f : reqFields) {
if(!f.getFieldType().equals(Field.FieldType.CATEGORY.toString())) {
ae.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.contentlet.required", f.getFieldName()));
} else {
ae.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.contentlet.category.required", f.getFieldName()));
}
}
saveMessages(request, ae);
return mapping.findForward("addEvent");
} catch (DotSecurityException e) {
ae.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("you-do-not-have-the-required-permissions"));
saveMessages(request, ae);
return mapping.findForward("addEvent");
}
Contentlet cont = conAPI.find(event.getInode(), currentUser, respectFrontendRoles);