Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r1bf70a335f5b30a1907ccae506908b05374c6c8c -ra52b4696862966c0db79293bfae9bf7894e8baeb Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java =================================================================== diff -u -rf8946bae724b8a3f414aa1f6a27cd714fe8aae58 -ra52b4696862966c0db79293bfae9bf7894e8baeb --- lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java (.../AuthoringAction.java) (revision f8946bae724b8a3f414aa1f6a27cd714fe8aae58) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java (.../AuthoringAction.java) (revision a52b4696862966c0db79293bfae9bf7894e8baeb) @@ -313,6 +313,9 @@ .getRequiredWebApplicationContext(getServlet().getServletContext()); ToolContentManager toolManager = (ToolContentManager) wac.getBean(tool.getServiceName()); String title = toolManager.getToolContentTitle(toolContentID); + if ( title == null || title.trim().length() == 0 ) { + title = getLearningDesignService().internationaliseActivityTitle(learningLibraryID); + } // create the LD and put it in Run Sequences folder in the given organisation Long learningDesignID = authoringService.insertSingleActivityLearningDesign(title, toolID, toolContentID, learningLibraryID, contentFolderID, organisationID); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ILearningDesignService.java =================================================================== diff -u -r2f02ea654f2380229d55ffd2483ba21ac48856d8 -ra52b4696862966c0db79293bfae9bf7894e8baeb --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ILearningDesignService.java (.../ILearningDesignService.java) (revision 2f02ea654f2380229d55ffd2483ba21ac48856d8) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ILearningDesignService.java (.../ILearningDesignService.java) (revision a52b4696862966c0db79293bfae9bf7894e8baeb) @@ -82,4 +82,6 @@ List getToolDTOs(boolean includeParallel, boolean includeInvalid, String userName) throws IOException; void fillLearningLibraryID(AuthoringActivityDTO activity); + + String internationaliseActivityTitle(Long learningLibraryID); } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java =================================================================== diff -u -re757b97ff40868053924255da9e6e14043ace7b6 -ra52b4696862966c0db79293bfae9bf7894e8baeb --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java (.../LearningDesignService.java) (revision e757b97ff40868053924255da9e6e14043ace7b6) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java (.../LearningDesignService.java) (revision a52b4696862966c0db79293bfae9bf7894e8baeb) @@ -39,6 +39,7 @@ import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.LearningLibrary; import org.lamsfoundation.lams.learningdesign.LearningLibraryGroup; +import org.lamsfoundation.lams.learningdesign.ToolActivity; import org.lamsfoundation.lams.learningdesign.dao.IActivityDAO; import org.lamsfoundation.lams.learningdesign.dao.IGroupingDAO; import org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO; @@ -378,6 +379,35 @@ } } + @Override + public String internationaliseActivityTitle(Long learningLibraryID) { + + ToolActivity templateActivity = (ToolActivity) activityDAO.getTemplateActivityByLibraryID(learningLibraryID); + + if ( templateActivity != null ) { + Locale locale = LocaleContextHolder.getLocale(); + String languageFilename = templateActivity.getLanguageFile(); + if (languageFilename != null) { + MessageSource toolMessageSource = toolActMessageService.getMessageService(languageFilename); + if (toolMessageSource != null) { + String title = toolMessageSource.getMessage(Activity.I18N_TITLE, null, + templateActivity.getTitle(), locale); + if ( title != null && title.trim().length() > 0 ) + return title; + } else { + log.warn("Unable to internationalise the library activity " + + templateActivity.getTitle() + " message file " + templateActivity.getLanguageFile() + + ". Activity Message source not available"); + } + } + } + + if ( templateActivity.getTitle() != null && templateActivity.getTitle().trim().length() > 0) + return templateActivity.getTitle(); + else + return "Untitled"; // should never get here - just return something in case there is a bug. A blank title affect the layout of the main page + } + private void internationaliseActivities(Collection activities) { Iterator iter = activities.iterator(); Locale locale = LocaleContextHolder.getLocale(); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java =================================================================== diff -u -r1bf70a335f5b30a1907ccae506908b05374c6c8c -ra52b4696862966c0db79293bfae9bf7894e8baeb --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 1bf70a335f5b30a1907ccae506908b05374c6c8c) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision a52b4696862966c0db79293bfae9bf7894e8baeb) @@ -514,12 +514,6 @@ ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); request.setAttribute(AttributeNames.ATTR_MODE, mode.toString()); - ActionMessages errors = validate(resourceForm, mapping, request); - if (!errors.isEmpty()) { - saveErrors(request, errors); - return mapping.findForward(ResourceConstants.SUCCESS); - } - Resource resource = resourceForm.getResource(); IResourceService service = getResourceService(); @@ -959,16 +953,6 @@ return errors; } - private ActionMessages validate(ResourceForm resourceForm, ActionMapping mapping, HttpServletRequest request) { - ActionMessages errors = new ActionMessages(); - if (StringUtils.isBlank(resourceForm.getResource().getTitle())) { - ActionMessage error = new ActionMessage("error.resource.item.title.blank"); - errors.add(ActionMessages.GLOBAL_MESSAGE, error); - } - - return errors; - } - public ActionForward initPedagogicalPlannerForm(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ResourcePedagogicalPlannerForm plannerForm = (ResourcePedagogicalPlannerForm) form;