Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/IImportService.java =================================================================== diff -u -r37f6755a9242e00ef1216aa86dc147efaeb02f75 -rcaeb2397273f76343a280cfd59c6f46c790f37e8 --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/IImportService.java (.../IImportService.java) (revision 37f6755a9242e00ef1216aa86dc147efaeb02f75) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/IImportService.java (.../IImportService.java) (revision caeb2397273f76343a280cfd59c6f46c790f37e8) @@ -99,17 +99,18 @@ /** * Returns message results from parsing list of users in spreadsheet. * @param file + * @param sessionId * @return * @throws IOException */ public List parseUserSpreadsheet(FormFile file, String sessionId) throws IOException; /** - * Returns message results from parsing list of organisation memberships - * in spreadsheet. + * Returns message results from parsing list of organisation memberships. * @param file + * @param sessionId * @return * @throws IOException */ - public List parseRolesSpreadsheet(FormFile file) throws IOException; + public List parseRolesSpreadsheet(FormFile file, String sessionId) throws IOException; } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java =================================================================== diff -u -r37f6755a9242e00ef1216aa86dc147efaeb02f75 -rcaeb2397273f76343a280cfd59c6f46c790f37e8 --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java (.../ImportService.java) (revision 37f6755a9242e00ef1216aa86dc147efaeb02f75) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java (.../ImportService.java) (revision caeb2397273f76343a280cfd59c6f46c790f37e8) @@ -171,7 +171,7 @@ if (isUserSpreadsheet(fileItem)) { return parseUserSpreadsheet(fileItem, sessionId); } else if (isRolesSpreadsheet(fileItem)) { - return parseRolesSpreadsheet(fileItem); + return parseRolesSpreadsheet(fileItem, sessionId); } return new ArrayList(); } @@ -476,14 +476,16 @@ ss.setAttribute(STATUS_IMPORTED, imported); } - public List parseRolesSpreadsheet(FormFile fileItem) throws IOException { + public List parseRolesSpreadsheet(FormFile fileItem, String sessionId) throws IOException { results = new ArrayList(); HSSFSheet sheet = getSheet(fileItem); int startRow = sheet.getFirstRowNum(); int endRow = sheet.getLastRowNum(); log.debug("sheet rows: "+startRow+".."+endRow); + setupImportStatus(sessionId, endRow-startRow); + HSSFRow row; List roles; for (int i = startRow + 1; i < endRow + 1; i++) { @@ -504,16 +506,18 @@ if (hasError) { log.debug("hasError: "+hasError); results.add(rowResult); + updateImportStatus(sessionId, results.size()); continue; } else { try { saveUserRoles(login, orgId, roles, row); } catch (Exception e) { - log.debug(e); + log.error("Unable to assign roles to user: "+login, e); rowResult.add(messageService.getMessage("error.fail.add")); } log.debug("rowResult size: "+rowResult.size()); results.add(rowResult); + updateImportStatus(sessionId, results.size()); } } log.debug("found "+results.size()+" users in spreadsheet."); @@ -542,7 +546,7 @@ setError("error.login.required", ""); } if (user==null) { - setError("user.does.not.exist", login); + setError("error.user.does.not.exist", "("+login+")"); } Organisation org = null;