r228 - in trunk: bow-extension-chromium bow-ui bow-ui/src/main/java/org/chorem/bow/action bow-ui/src/main/resources bow-ui/src/main/resources/i18n bow-ui/src/main/webapp/WEB-INF bow-ui/src/main/webapp/css bow-ui/src/main/webapp/jsp/inc
Author: vbriand Date: 2011-03-03 11:59:29 +0100 (Thu, 03 Mar 2011) New Revision: 228 Url: http://chorem.org/repositories/revision/bow/228 Log: Fixed images links. Added missing confirmations messages and surrounded every action with try/catch in order to warn the user when an internal error occurs. Modified: trunk/bow-extension-chromium/ trunk/bow-ui/ trunk/bow-ui/src/main/java/org/chorem/bow/action/AddUrlAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteImportAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteSearchResultsAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteTagAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/ExportBookmarksAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/ForgotPasswordAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/FullTextSearchAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/GenerateTokenAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/HomeAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/ImportBookmarksAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/LoginAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/Migrate04To05Action.java trunk/bow-ui/src/main/java/org/chorem/bow/action/ModifyBookmarkAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/OrderAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/PreferencesAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/ReIndexationAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/RedirectToUrlAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/RegisterAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/RemoveBookmarkAction.java trunk/bow-ui/src/main/java/org/chorem/bow/action/SearchAction.java trunk/bow-ui/src/main/resources/i18n/bow_en_GB.properties trunk/bow-ui/src/main/resources/i18n/bow_fr_FR.properties trunk/bow-ui/src/main/resources/struts.xml trunk/bow-ui/src/main/webapp/WEB-INF/web.xml trunk/bow-ui/src/main/webapp/css/bookmark.css trunk/bow-ui/src/main/webapp/css/connexion.css trunk/bow-ui/src/main/webapp/css/global.css trunk/bow-ui/src/main/webapp/jsp/inc/bookmark.jsp Property changes on: trunk/bow-extension-chromium ___________________________________________________________________ Added: svn:ignore + target Property changes on: trunk/bow-ui ___________________________________________________________________ Modified: svn:ignore - target + target PutObjectStoreDirHere Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/AddUrlAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/AddUrlAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/AddUrlAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -156,33 +156,38 @@ } public String execute() { - WikittyProxy proxy = getBowProxy(); - BowBookmark bookmark = null; + try { + WikittyProxy proxy = getBowProxy(); + BowBookmark bookmark = null; - BowUser user = getBowSession().getUser(); - if (name != null) { - if (alias != null && !alias.isEmpty()) { - Criteria criteria = Search.query().eq( - BowBookmark.FQ_FIELD_BOWBOOKMARK_PRIVATEALIAS, alias).criteria(); + BowUser user = getBowSession().getUser(); + if (name != null) { + if (alias != null && !alias.isEmpty()) { + Criteria criteria = Search.query().eq( + BowBookmark.FQ_FIELD_BOWBOOKMARK_PRIVATEALIAS, alias).criteria(); - if (proxy.findByCriteria(BowBookmark.class, criteria) != null) { - alias = ""; + if (proxy.findByCriteria(BowBookmark.class, criteria) != null) { + alias = ""; + } } + bookmark = BookmarkUtils.createBookmark(link, name, tags, user, alias, null); + } else { //This part is for the bookmark addition by script + if (nameAndTags != null) { + bookmark = BookmarkUtils.createBookmark(link, nameAndTags, user); + } } - bookmark = BookmarkUtils.createBookmark(link, name, tags, user, alias, null); - } else { //This part is for the bookmark addition by script - if (nameAndTags != null) { - bookmark = BookmarkUtils.createBookmark(link, nameAndTags, user); + if (bookmark != null && !bookmark.getDescription().isEmpty() && !bookmark.getBowUser().isEmpty()) { + proxy.store(bookmark); //Stores the bookmark if everything is ok + addActionMessage(getText(n_("bow.bookmark.add.successful"))); + if (log.isDebugEnabled()) { + log.debug("Adding URL"); + } } + redirectTo = BowUtils.redirectTo(searchLine, fullTextLine); + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } - if (bookmark != null && !bookmark.getDescription().isEmpty() && !bookmark.getBowUser().isEmpty()) { - proxy.store(bookmark); //Stores the bookmark if everything is ok - addActionMessage(getText(n_("bow.bookmark.add.successful"))); - if (log.isDebugEnabled()) { - log.debug("Adding URL"); - } - } - redirectTo = BowUtils.redirectTo(searchLine, fullTextLine); return SUCCESS; } } \ No newline at end of file Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteImportAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteImportAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteImportAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -63,16 +63,21 @@ * Deletes a bookmark import */ public String execute() { - if (date != null && - date.matches("[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{1,3}Z")) { - WikittyProxy proxy = getBowProxy(); - BowUser user = getBowSession().getUser(); - Criteria criteria = Search.query() - .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_BOWUSER, user.getWikittyId()) - .eq(BowImport.FQ_FIELD_BOWIMPORT_IMPORTDATE, date).criteria(); - List<BowImport> bookmarks = proxy.findAllByCriteria(BowImport.class, criteria).getAll(); - proxy.delete(bookmarks); - addActionMessage(getText(n_("bow.bookmark.import.delete.successful"))); + try { + if (date != null && + date.matches("[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{1,3}Z")) { + WikittyProxy proxy = getBowProxy(); + BowUser user = getBowSession().getUser(); + Criteria criteria = Search.query() + .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_BOWUSER, user.getWikittyId()) + .eq(BowImport.FQ_FIELD_BOWIMPORT_IMPORTDATE, date).criteria(); + List<BowImport> bookmarks = proxy.findAllByCriteria(BowImport.class, criteria).getAll(); + proxy.delete(bookmarks); + addActionMessage(getText(n_("bow.bookmark.import.delete.successful"))); + } + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } return SUCCESS; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteSearchResultsAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteSearchResultsAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteSearchResultsAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -33,6 +33,8 @@ import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.search.Search; +import static org.nuiton.i18n.I18n.n_; + /** * Supprime des bookmarks qui satisfont le critere de recherche. Si fullTextLine * est non vide, alors elle est utilisee, pour la recherche, sinon on utilise @@ -78,31 +80,38 @@ * Deletes the search results */ public String execute() { - if (searchLine != null && fullTextLine != null) { - WikittyProxy proxy = getBowProxy(); - Criteria criteria; + try { + if (searchLine != null && fullTextLine != null) { + WikittyProxy proxy = getBowProxy(); + Criteria criteria; + BowPreference user = getBowSession().getPreference(); - BowPreference user = getBowSession().getPreference(); - if (fullTextLine.isEmpty()) { - criteria = BookmarkUtils.getBookmarkListCriteriaByUser(user, searchLine); - } else { - criteria = Search.query().keyword(fullTextLine) - .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_BOWUSER, user.getWikittyId()).criteria() - .addFacetField(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS); - } - List<BowBookmark> bookmarks = proxy.findAllByCriteria(BowBookmark.class, criteria).getAll(); - List<String> ids = new ArrayList<String>(); + if (fullTextLine.isEmpty()) { + criteria = BookmarkUtils.getBookmarkListCriteriaByUser(user, searchLine); + } else { + criteria = Search.query().keyword(fullTextLine) + .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_BOWUSER, user.getWikittyId()).criteria() + .addFacetField(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS); + } + List<BowBookmark> bookmarks = proxy.findAllByCriteria(BowBookmark.class, criteria).getAll(); + List<String> ids = new ArrayList<String>(); - // TODO poussin 20110216 a revoir, incomprehensible :( - for (BowBookmark bookmark : bookmarks) { - if (bookmark != null) { - if (searchLine.isEmpty() && bookmark.getLabels() == null || !searchLine.isEmpty() - || fullTextLine.isEmpty() && bookmark.getLabels() == null || !fullTextLine.isEmpty()) { - ids.add(bookmark.getWikittyId()); + // TODO poussin 20110216 a revoir, incomprehensible :( + for (BowBookmark bookmark : bookmarks) { + if (bookmark != null) { + if (searchLine.isEmpty() && bookmark.getLabels() == null || + !searchLine.isEmpty() || fullTextLine.isEmpty() && + bookmark.getLabels() == null || !fullTextLine.isEmpty()) { + ids.add(bookmark.getWikittyId()); + } } } + proxy.delete(ids); + addActionMessage(getText(n_("bow.search.results.deleted"))); } - proxy.delete(ids); + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } return SUCCESS; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteTagAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteTagAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/DeleteTagAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -27,6 +27,8 @@ import org.chorem.bow.BowUtils; import org.nuiton.wikitty.WikittyProxy; +import static org.nuiton.i18n.I18n.n_; + /** * Supprime un tag d'un bookmark * @@ -104,18 +106,24 @@ * Deletes a bookmark's tag */ public String execute() { - if (deleteTag != null && bookmarkId != null) { - if (!bookmarkId.isEmpty()) { - WikittyProxy proxy = getBowProxy(); - BowBookmark bookmark = proxy.restore(BowBookmark.class, bookmarkId); + try { + if (deleteTag != null && bookmarkId != null) { + if (!bookmarkId.isEmpty()) { + WikittyProxy proxy = getBowProxy(); + BowBookmark bookmark = proxy.restore(BowBookmark.class, bookmarkId); - if (bookmark != null) { - bookmark.removeLabels(deleteTag); - proxy.store(bookmark); + if (bookmark != null) { + bookmark.removeLabels(deleteTag); + proxy.store(bookmark); + addActionMessage(getText(n_("bow.bookmark.tag.deleted"))); + } } } + redirectTo = BowUtils.redirectTo(searchLine, fullTextLine); + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } - redirectTo = BowUtils.redirectTo(searchLine, fullTextLine); return SUCCESS; } } \ No newline at end of file Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/ExportBookmarksAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/ExportBookmarksAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/ExportBookmarksAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -74,7 +74,7 @@ BufferedWriter out = null; try { - File tmp = File.createTempFile("bookmarks", "tmp.html"); + File tmp = File.createTempFile("bookmarks", ".tmp.html"); tmp.deleteOnExit(); out = new BufferedWriter(new FileWriter(tmp)); Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/ForgotPasswordAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/ForgotPasswordAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/ForgotPasswordAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -80,52 +80,57 @@ public String execute() { String result = INPUT; - if (email != null) { - email = email.trim(); - if (!email.isEmpty()) { - WikittyProxy proxy = getBowProxy(); - Criteria criteria = Search.query() - .eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email).criteria(); - BowUser user = proxy.findByCriteria(BowUser.class, criteria); + try { + if (email != null) { + email = email.trim(); + if (!email.isEmpty()) { + WikittyProxy proxy = getBowProxy(); + Criteria criteria = Search.query() + .eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email).criteria(); + BowUser user = proxy.findByCriteria(BowUser.class, criteria); - if (user != null) { //If the email address exists - String password = ""; - String md5 = ""; + if (user != null) { //If the email address exists + String password = ""; + String md5 = ""; - password = RandomStringUtils.randomAlphanumeric(20); - md5 = StringUtil.encodeMD5(password); - try { - String mailContent; + password = RandomStringUtils.randomAlphanumeric(20); + md5 = StringUtil.encodeMD5(password); + try { + String mailContent; - mailContent = getText(n_("bow.register.mailHi")) + - ",\n\n" + getText(n_("bow.register.mailPwd")) + ": " + - password + "\n\n" + getText(n_("bow.register.mailEmail")) + - ": " + email + "\n\n"; - BowMail.sendMail(email, - getText(n_("bow.register.mailSubject")), - mailContent); - - //The password is changed only if the mail has been sent - user.setPassword(md5); - proxy.store(user); - } catch (AddressException e) { - //If the email address is invalid - String message = getText("bow.mail.badFormat"); - - addActionError(n_(message)); - log.error(message + " (email:" + email + ")", e); - } catch (MessagingException e) { - String message = getText("bow.mail.sendError"); - - addActionError(n_(message)); - log.error(message + "(" + e.getMessage() + ")", e); + mailContent = getText(n_("bow.register.mailHi")) + + ",\n\n" + getText(n_("bow.register.mailPwd")) + ": " + + password + "\n\n" + getText(n_("bow.register.mailEmail")) + + ": " + email + "\n\n"; + BowMail.sendMail(email, + getText(n_("bow.register.mailSubject")), + mailContent); + + //The password is changed only if the mail has been sent + user.setPassword(md5); + proxy.store(user); + } catch (AddressException e) { + //If the email address is invalid + String message = getText("bow.mail.badFormat"); + + addActionError(n_(message)); + log.error(message + " (email:" + email + ")", e); + } catch (MessagingException e) { + String message = getText("bow.mail.sendError"); + + addActionError(n_(message)); + log.error(message + "(" + e.getMessage() + ")", e); + } + result = SUCCESS; + } else { //If the email is not associated with an account + addFieldError("email", + getText(n_("bow.forgotPassword.emailDoesntExist"))); } - result = SUCCESS; - } else { //If the email is not associated with an account - addFieldError("email", - getText(n_("bow.forgotPassword.emailDoesntExist"))); } } + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } return result; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/FullTextSearchAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/FullTextSearchAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/FullTextSearchAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -30,6 +30,8 @@ import org.chorem.bow.BowSearch; import org.chorem.bow.BowSession; +import static org.nuiton.i18n.I18n.n_; + /** * Fait la recherche fulltext * @@ -78,10 +80,15 @@ * Fulltext search */ public String execute() { - BowSession session = getBowSession(); - BowPreference user = session.getPreference(); + try { + BowSession session = getBowSession(); + BowPreference user = session.getPreference(); - BowSearch.fullText(request, user); + BowSearch.fullText(request, user); + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); + } return SUCCESS; } } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/GenerateTokenAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/GenerateTokenAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/GenerateTokenAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -42,16 +42,21 @@ * Generates a new permanent and temporary token */ public String execute() { - BowUser user = getBowSession().getUser(); - WikittyProxy proxy = getBowProxy(); - - String permanentToken = BowUtils.generateToken(); - user.setPermanentToken(permanentToken); - proxy.store(user); - - String temporaryToken = BowUtils.generateToken(); - getBowSession().setTemporaryToken(temporaryToken); - addActionMessage(getText(n_("bow.token.generate.successful"))); + try { + BowUser user = getBowSession().getUser(); + WikittyProxy proxy = getBowProxy(); + + String permanentToken = BowUtils.generateToken(); + user.setPermanentToken(permanentToken); + proxy.store(user); + + String temporaryToken = BowUtils.generateToken(); + getBowSession().setTemporaryToken(temporaryToken); + addActionMessage(getText(n_("bow.token.generate.successful"))); + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); + } return SUCCESS; } } \ No newline at end of file Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/HomeAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/HomeAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/HomeAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -29,6 +29,8 @@ import org.chorem.bow.BowInit; import org.chorem.bow.BowPreference; +import static org.nuiton.i18n.I18n.n_; + /** * Prepare l'affichage de la page d'accueil * @@ -61,9 +63,14 @@ * Initializes everything before displaying the home page */ public String execute() { - BowPreference user = getBowSession().getPreference(); + try { + BowPreference user = getBowSession().getPreference(); - BowInit.initHomePage(request, user); + BowInit.initHomePage(request, user); + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); + } return SUCCESS; } } \ No newline at end of file Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/ImportBookmarksAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/ImportBookmarksAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/ImportBookmarksAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -226,46 +226,51 @@ } public String execute() { - BowPreference user = getBowSession().getPreference(); + try { + BowPreference user = getBowSession().getPreference(); - if (upfile != null) { - // try { - // List<?> lines = FileUtils.readLines(upfile); - // String content = ""; - // - // for (Object line : lines) { - // content += (String)line; - // } - WikittyProxy proxy = getBowProxy(); + if (upfile != null) { + // try { + // List<?> lines = FileUtils.readLines(upfile); + // String content = ""; + // + // for (Object line : lines) { + // content += (String)line; + // } + WikittyProxy proxy = getBowProxy(); - try { - URL url = upfile.toURI().toURL(); - Parser parser = new Parser(url.openConnection()); - NodeList list = parser.parse(null); - List<BowBookmark> bookmarks = new ArrayList<BowBookmark>(); - parseHtmlToBookmarks(list, user, new Date(), bookmarks, - new ArrayList<String>()); - bookmarks = proxy.store(bookmarks); - // createImportExtension(bookmarks); - redirectTo = BowUtils.redirectTo(searchLine, fullTextLine); - if (searchLine == null || searchLine.isEmpty()) { - BowInit.initHomePage(request, user); - } else { - BowSearch.search(request, user); - } - addActionMessage(getText(n_("bow.bookmark.import.successful"))); - } catch (ParserException e) { - addActionError(getText(n_("bow.bookmark.badFileFormat"))); + try { + URL url = upfile.toURI().toURL(); + Parser parser = new Parser(url.openConnection()); + NodeList list = parser.parse(null); + List<BowBookmark> bookmarks = new ArrayList<BowBookmark>(); + parseHtmlToBookmarks(list, user, new Date(), bookmarks, + new ArrayList<String>()); + bookmarks = proxy.store(bookmarks); + // createImportExtension(bookmarks); + redirectTo = BowUtils.redirectTo(searchLine, fullTextLine); + if (searchLine == null || searchLine.isEmpty()) { + BowInit.initHomePage(request, user); + } else { + BowSearch.search(request, user); + } + addActionMessage(getText(n_("bow.bookmark.import.successful"))); + } catch (ParserException e) { + addActionError(getText(n_("bow.bookmark.badFileFormat"))); - if (searchLine == null || searchLine.isEmpty()) { - BowInit.initHomePage(request, user); - } else { - BowSearch.search(request, user); + if (searchLine == null || searchLine.isEmpty()) { + BowInit.initHomePage(request, user); + } else { + BowSearch.search(request, user); + } + } catch (IOException e2) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e2.getMessage(), e2); } - } catch (IOException e2) { - addActionError(getText(n_("bow.error.internal"))); - log.error(e2.getMessage(), e2); } + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } return SUCCESS; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/LoginAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/LoginAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/LoginAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -115,21 +115,26 @@ public String execute() { String result = INPUT; - if (email != null) { - email = email.trim(); + try { + if (email != null) { + email = email.trim(); - if (password != null) { - String md5 = StringUtil.encodeMD5(password); - BowUser user; + if (password != null) { + String md5 = StringUtil.encodeMD5(password); + BowUser user; - user = checkLogin(email, md5); - if (user != null) { - getBowSession().setUser(user); - BowPreference pref = getBowSession().getPreference(); - BowInit.initHomePage(servletRequest, pref); - result = SUCCESS; + user = checkLogin(email, md5); + if (user != null) { + getBowSession().setUser(user); + BowPreference pref = getBowSession().getPreference(); + BowInit.initHomePage(servletRequest, pref); + result = SUCCESS; + } } } + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } return result; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/Migrate04To05Action.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/Migrate04To05Action.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/Migrate04To05Action.java 2011-03-03 10:59:29 UTC (rev 228) @@ -30,6 +30,8 @@ import org.chorem.bow.BowSession; import org.nuiton.wikitty.WikittyProxy; +import static org.nuiton.i18n.I18n.n_; + /** * Lance la migration des données de la version 0.4 vers 0.5 * @@ -45,11 +47,17 @@ static private Log log = LogFactory.getLog(Migrate04To05Action.class); public String execute() { - BowSession session = getBowSession(); - if (session.isAdmin()) { //If is admin - WikittyProxy proxy = getBowProxy(); - - BowMigration04To05.migrate(proxy); + try { + BowSession session = getBowSession(); + if (session.isAdmin()) { //If is admin + WikittyProxy proxy = getBowProxy(); + + BowMigration04To05.migrate(proxy); + addActionMessage(getText(n_("bow.admin.dataMigration.success"))); + } + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } return SUCCESS; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/ModifyBookmarkAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/ModifyBookmarkAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/ModifyBookmarkAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -148,21 +148,26 @@ * Modifies a bookmark */ public String execute() { - WikittyProxy proxy = getBowProxy(); - BowBookmark bookmark = proxy.restore(BowBookmark.class, bookmarkId); + try { + WikittyProxy proxy = getBowProxy(); + BowBookmark bookmark = proxy.restore(BowBookmark.class, bookmarkId); - if (bookmark != null) { - if (alias != null && !alias.isEmpty()) { - Criteria criteria = Search.query().eq( - BowBookmark.FQ_FIELD_BOWBOOKMARK_PRIVATEALIAS, alias).criteria(); + if (bookmark != null) { + if (alias != null && !alias.isEmpty()) { + Criteria criteria = Search.query().eq( + BowBookmark.FQ_FIELD_BOWBOOKMARK_PRIVATEALIAS, alias).criteria(); - if (proxy.findByCriteria(BowBookmark.class, criteria) != null) { - alias = bookmark.getPrivateAlias(); + if (proxy.findByCriteria(BowBookmark.class, criteria) != null) { + alias = bookmark.getPrivateAlias(); + } } + BookmarkUtils.updateBookmark(bookmark, name, link, tags, alias); + proxy.store(bookmark); + addActionMessage(getText(n_("bow.bookmark.update.successful"))); } - BookmarkUtils.updateBookmark(bookmark, name, link, tags, alias); - proxy.store(bookmark); - addActionMessage(getText(n_("bow.bookmark.update.successful"))); + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } return SUCCESS; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/OrderAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/OrderAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/OrderAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -34,6 +34,8 @@ import org.nuiton.wikitty.search.PagedResult; import org.nuiton.wikitty.WikittyProxy; +import static org.nuiton.i18n.I18n.n_; + /** * Permet de modifie l'ordre de tri des bookmarks * TODO poussin 20110211 cette action n'est pas vraiment pertinente et devrait @@ -84,41 +86,52 @@ * Orders the bookmarks according to a criteria */ public String execute() { - BowPreference user = getBowSession().getPreference(); - Criteria baseCriteria = BookmarkUtils.getBookmarkListCriteriaByUser(user, searchLine); + try { + BowPreference user = getBowSession().getPreference(); + Criteria baseCriteria = BookmarkUtils.getBookmarkListCriteriaByUser(user, searchLine); - if (type != null && baseCriteria != null && !type.isEmpty()) { - WikittyProxy proxy = getBowProxy(); - PagedResult<BowBookmark> result = null; + if (type != null && baseCriteria != null && !type.isEmpty()) { + WikittyProxy proxy = getBowProxy(); + PagedResult<BowBookmark> result = null; - if (type.equals("ascName")) { - Criteria criteria = baseCriteria.addSortAscending( - BowBookmark.FQ_FIELD_BOWBOOKMARK_DESCRIPTION); - result = proxy.findAllByCriteria(BowBookmark.class, criteria); - } else if (type.equals("ascDate")) { - Criteria criteria = baseCriteria.addSortAscending( - BowBookmark.FQ_FIELD_BOWBOOKMARK_CREATIONDATE); - result = proxy.findAllByCriteria(BowBookmark.class, criteria); - } else if (type.equals("ascClick")) { - Criteria criteria = baseCriteria.addSortAscending( - BowBookmark.FQ_FIELD_BOWBOOKMARK_CLICK); - result = proxy.findAllByCriteria(BowBookmark.class, criteria); - } else if (type.equals("descName")) { - Criteria criteria = baseCriteria.addSortDescending( - BowBookmark.FQ_FIELD_BOWBOOKMARK_DESCRIPTION); - result = proxy.findAllByCriteria(BowBookmark.class, criteria); - } else if (type.equals("descDate")) { - Criteria criteria = baseCriteria.addSortDescending( - BowBookmark.FQ_FIELD_BOWBOOKMARK_CREATIONDATE); - result = proxy.findAllByCriteria(BowBookmark.class, criteria); - } else if (type.equals("descClick")) { - Criteria criteria = baseCriteria.addSortDescending( - BowBookmark.FQ_FIELD_BOWBOOKMARK_CLICK); - result = proxy.findAllByCriteria(BowBookmark.class, criteria); + if (type.equals("ascName")) { + Criteria criteria = baseCriteria.addSortAscending( + BowBookmark.FQ_FIELD_BOWBOOKMARK_DESCRIPTION); + result = proxy.findAllByCriteria(BowBookmark.class, criteria); + addActionMessage(getText(n_("bow.search.order.ascName"))); + } else if (type.equals("ascDate")) { + Criteria criteria = baseCriteria.addSortAscending( + BowBookmark.FQ_FIELD_BOWBOOKMARK_CREATIONDATE); + result = proxy.findAllByCriteria(BowBookmark.class, criteria); + addActionMessage(getText(n_("bow.search.order.ascDate"))); + } else if (type.equals("ascClick")) { + Criteria criteria = baseCriteria.addSortAscending( + BowBookmark.FQ_FIELD_BOWBOOKMARK_CLICK); + result = proxy.findAllByCriteria(BowBookmark.class, criteria); + addActionMessage(getText(n_("bow.search.order.ascClick"))); + } else if (type.equals("descName")) { + Criteria criteria = baseCriteria.addSortDescending( + BowBookmark.FQ_FIELD_BOWBOOKMARK_DESCRIPTION); + result = proxy.findAllByCriteria(BowBookmark.class, criteria); + addActionMessage(getText(n_("bow.search.order.descName"))); + } else if (type.equals("descDate")) { + Criteria criteria = baseCriteria.addSortDescending( + BowBookmark.FQ_FIELD_BOWBOOKMARK_CREATIONDATE); + result = proxy.findAllByCriteria(BowBookmark.class, criteria); + addActionMessage(getText(n_("bow.search.order.descDate"))); + } else if (type.equals("descClick")) { + Criteria criteria = baseCriteria.addSortDescending( + BowBookmark.FQ_FIELD_BOWBOOKMARK_CLICK); + result = proxy.findAllByCriteria(BowBookmark.class, criteria); + addActionMessage(getText(n_("bow.search.order.descClick"))); + } + BookmarkActions bookmarkActions = + BookmarkUtils.createBookmarkActions(request, result, searchLine); + request.setAttribute("bookmarkActions", bookmarkActions); } - BookmarkActions bookmarkActions = - BookmarkUtils.createBookmarkActions(request, result, searchLine); - request.setAttribute("bookmarkActions", bookmarkActions); + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } return SUCCESS; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/PreferencesAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/PreferencesAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/PreferencesAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -258,50 +258,56 @@ * Changes the user preferences */ public String execute() { - BowProxy proxy = getBowSession().getProxy(); - // BowPreference extends BowUser, donc on l'utilise pour tout - BowPreference preference = getBowSession().getPreference(); String result = SUCCESS; + + try { + BowProxy proxy = getBowSession().getProxy(); + // BowPreference extends BowUser, donc on l'utilise pour tout + BowPreference preference = getBowSession().getPreference(); + + setBookmarksImportDate(BookmarkUtils.getBookmarksByImportDate(request, preference)); + if (update != null) { //If the user submitted the form + preference = changePreference(preference); + preference = proxy.store(preference); + getBowSession().setPreference(preference); - setBookmarksImportDate(BookmarkUtils.getBookmarksByImportDate(request, preference)); - if (update != null) { //If the user submitted the form - preference = changePreference(preference); - preference = proxy.store(preference); - getBowSession().setPreference(preference); + Criteria criteria = Search.query().eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email).criteria(); + BowUser find = proxy.findByCriteria(BowUser.class, criteria); - Criteria criteria = Search.query().eq(BowUser.FQ_FIELD_WIKITTYUSER_LOGIN, email).criteria(); - BowUser find = proxy.findByCriteria(BowUser.class, criteria); - - //If this email address isn't already used (or if it hasn't changed) - if (find == null || find.getLogin().equals(preference.getLogin())) { - BowUser newUser = changeUser(preference); - if (newUser == null) { + //If this email address isn't already used (or if it hasn't changed) + if (find == null || find.getLogin().equals(preference.getLogin())) { + BowUser newUser = changeUser(preference); + if (newUser == null) { + result = ERROR; + } else { + newUser = proxy.store(newUser); + getBowSession().setUser(newUser); + result = "update"; + addActionMessage(getText(n_("bow.preferences.update.successful"))); + } + } else { + // this email address is already used by someone else + setEmail(preference.getLogin()); + addActionError(getText("bow.preferences.emailAldyExists")); result = ERROR; - } else { - newUser = proxy.store(newUser); - getBowSession().setUser(newUser); - result = "update"; - addActionMessage(getText(n_("bow.preferences.update.successful"))); } } else { - // this email address is already used by someone else + // If the user didn't submit the form, the fields are filled with + // the current preferences values setEmail(preference.getLogin()); - addActionError(getText("bow.preferences.emailAldyExists")); - result = ERROR; + setColors(preference.getColors()); + setTagsNb(String.valueOf(preference.getTags())); + setBookmarksHomePage(String.valueOf(preference.getBookmarks())); + setSearchEngineUrlSuggestions(preference.getSearchEngineUrlSuggestions()); + setSearchEngineUrlResults(preference.getSearchEngineUrlResults()); } - } else { - // If the user didn't submit the form, the fields are filled with - // the current preferences values - setEmail(preference.getLogin()); - setColors(preference.getColors()); - setTagsNb(String.valueOf(preference.getTags())); - setBookmarksHomePage(String.valueOf(preference.getBookmarks())); - setSearchEngineUrlSuggestions(preference.getSearchEngineUrlSuggestions()); - setSearchEngineUrlResults(preference.getSearchEngineUrlResults()); + // retrieve last reference + preference = getBowSession().getPreference(); + BowInit.initHomePage(request, preference); + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } - // retrieve last reference - preference = getBowSession().getPreference(); - BowInit.initHomePage(request, preference); return result; } } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/ReIndexationAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/ReIndexationAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/ReIndexationAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -26,6 +26,8 @@ import org.chorem.bow.BowSession; import org.nuiton.wikitty.WikittyProxy; +import static org.nuiton.i18n.I18n.n_; + /** * Lance la reindexation solr * @@ -36,11 +38,17 @@ private static final long serialVersionUID = 6226574522402739559L; public String execute() { - BowSession session = getBowSession(); - if (session.isAdmin()) { //If is admin - WikittyProxy proxy = getBowProxy(); + try { + BowSession session = getBowSession(); + if (session.isAdmin()) { //If is admin + WikittyProxy proxy = getBowProxy(); - proxy.getWikittyService().syncSearchEngine(proxy.getSecurityToken()); + proxy.getWikittyService().syncSearchEngine(proxy.getSecurityToken()); + addActionMessage(getText(n_("bow.admin.reIndexationDone"))); + } + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } return SUCCESS; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/RedirectToUrlAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/RedirectToUrlAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/RedirectToUrlAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -26,6 +26,8 @@ import org.chorem.bow.BowBookmark; import org.nuiton.wikitty.WikittyProxy; +import static org.nuiton.i18n.I18n.n_; + /** * Retrieves the bookmark URL (where the user will be redirected) and increments * the click counter for this bookmark @@ -70,15 +72,21 @@ */ public String execute() { String result = ERROR; - if (bookmarkId != null && !bookmarkId.isEmpty()) { - WikittyProxy proxy = getBowProxy(); - BowBookmark bookmark = proxy.restore(BowBookmark.class, bookmarkId); - if (bookmark != null) { - bookmark.setClick(bookmark.getClick() + 1); - proxy.store(bookmark); - setLink(bookmark.getLink()); - result = SUCCESS; + + try { + if (bookmarkId != null && !bookmarkId.isEmpty()) { + WikittyProxy proxy = getBowProxy(); + BowBookmark bookmark = proxy.restore(BowBookmark.class, bookmarkId); + if (bookmark != null) { + bookmark.setClick(bookmark.getClick() + 1); + proxy.store(bookmark); + setLink(bookmark.getLink()); + result = SUCCESS; + } } + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } return result; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/RegisterAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/RegisterAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/RegisterAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -131,53 +131,59 @@ public String execute() { String result = INPUT; - if (email != null) { - email = email.trim(); - if (password != null) { - if (!password.equals(repeatPassword)) { - addActionError(getText(n_("bow.register.pwdDontMatch"))); - } else { - String md5 = StringUtil.encodeMD5(password); + try { + if (email != null) { + email = email.trim(); + if (password != null) { + if (!password.equals(repeatPassword)) { + addActionError(getText(n_("bow.register.pwdDontMatch"))); + } else { + String md5 = StringUtil.encodeMD5(password); - //If the email address isn't already used - if (!alreadyRegistered(md5)) { - WikittyProxy proxy = getBowProxy(); - BowUserImpl newUser = new BowUserImpl(); - newUser.setPassword(md5); - newUser.setLogin(email); - String permanentToken = BowUtils.generateToken(); - newUser.setPermanentToken(permanentToken); - BowUser login = proxy.store(newUser); //Stores the new user + //If the email address isn't already used + if (!alreadyRegistered(md5)) { + WikittyProxy proxy = getBowProxy(); + BowUserImpl newUser = new BowUserImpl(); + newUser.setPassword(md5); + newUser.setLogin(email); + String permanentToken = BowUtils.generateToken(); + newUser.setPermanentToken(permanentToken); + BowUser login = proxy.store(newUser); //Stores the new user - //If there was an error when storing the user - if (login == null) { - addFieldError("email", getText(n_("bow.register.invalidLogin"))); - } else { - getBowSession().setUser(login); - BowPreference pref = getBowSession().getPreference(); - BowInit.initHomePage(request, pref); - try { - String mailContent; + //If there was an error when storing the user + if (login == null) { + addFieldError("email", getText(n_("bow.register.invalidLogin"))); + } else { + getBowSession().setUser(login); + BowPreference pref = getBowSession().getPreference(); + BowInit.initHomePage(request, pref); - mailContent = getText(n_("bow.register.mailHi")) + ",\n\n" + getText(n_("bow.register.mailPwd")) + ": " + password + "\n\n" + getText(n_("bow.register.mailEmail")) + ": " + email + "\n\n"; - BowMail.sendMail(email, getText(n_("bow.register.mailSubject")), mailContent); - } catch (AddressException e) { - //If the email address is invalid - String message = getText("bow.mail.badFormat"); + try { + String mailContent; - addActionError(n_(message)); - log.error(message + " (email:" + email + ")", e); - } catch (MessagingException e) { - String message = getText("bow.mail.sendError"); + mailContent = getText(n_("bow.register.mailHi")) + ",\n\n" + getText(n_("bow.register.mailPwd")) + ": " + password + "\n\n" + getText(n_("bow.register.mailEmail")) + ": " + email + "\n\n"; + BowMail.sendMail(email, getText(n_("bow.register.mailSubject")), mailContent); + } catch (AddressException e) { + //If the email address is invalid + String message = getText("bow.mail.badFormat"); - addActionError(n_(message)); - log.error(message + "(" + e.getMessage() + ")", e); + addActionError(n_(message)); + log.error(message + " (email:" + email + ")", e); + } catch (MessagingException e) { + String message = getText("bow.mail.sendError"); + + addActionError(n_(message)); + log.error(message + "(" + e.getMessage() + ")", e); + } + result = SUCCESS; } - result = SUCCESS; } } } } + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); } return result; } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/RemoveBookmarkAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/RemoveBookmarkAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/RemoveBookmarkAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -104,6 +104,7 @@ addActionMessage(getText(n_("bow.bookmark.remove.successful"))); } } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); log.error("Can't do action", e); } } Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/SearchAction.java =================================================================== --- trunk/bow-ui/src/main/java/org/chorem/bow/action/SearchAction.java 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/SearchAction.java 2011-03-03 10:59:29 UTC (rev 228) @@ -29,6 +29,8 @@ import org.chorem.bow.BowPreference; import org.chorem.bow.BowSearch; +import static org.nuiton.i18n.I18n.n_; + /** * gere les recherches de bookmark * @@ -92,8 +94,14 @@ * Searches a bookmark */ public String execute() { - BowPreference user = getBowSession().getPreference(); - BowSearch.search(request, user); + try { + BowPreference user = getBowSession().getPreference(); + BowSearch.search(request, user); + } catch (Exception e) { + addActionError(getText(n_("bow.error.internal"))); + log.error(e.getMessage(), e); + } return SUCCESS; + } } \ No newline at end of file Modified: trunk/bow-ui/src/main/resources/i18n/bow_en_GB.properties =================================================================== --- trunk/bow-ui/src/main/resources/i18n/bow_en_GB.properties 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/resources/i18n/bow_en_GB.properties 2011-03-03 10:59:29 UTC (rev 228) @@ -1,16 +1,19 @@ bow.action.locale.english=English bow.action.locale.french=Fran\u00E7ais bow.admin.dataMigration=Migrate all data from 0.4 to 0.5 +bow.admin.dataMigration.success=Data migration successful bow.admin.dataReindexation=All data reindexation bow.admin.forbidden=You don't have admin rights \! bow.admin.home=Return to the home page bow.admin.panel=Admin panel +bow.admin.reIndexationDone=Data reindexed successfully bow.bookmark.add.successful=Bookmark successfully added bow.bookmark.badFileFormat=Bad bookmarks file format \: unsuccessful import (expected Netscape-like bookmarks file) bow.bookmark.description=Description bow.bookmark.import.delete.successful=The imported bookmarks were deleted successfully bow.bookmark.import.successful=The bookmarks were imported successfully bow.bookmark.remove.successful=The bookmark was removed successfully +bow.bookmark.tag.deleted=The tag was removed successfully bow.bookmark.tags=Tags bow.bookmark.update.successful=The bookmark was updated successfully bow.bookmarks.noBookmarks=No bookmarks @@ -107,6 +110,13 @@ bow.search.descdate=Desc. date bow.search.descname=Desc. name bow.search.orderby=Order by +bow.search.results.deleted=Search results deleted successfully bow.search.submit=Search bow.search.title=Search +bow.search.order.ascClick=Your search results have been sorted by ascendant clicks number +bow.search.order.ascDate=Your search results have been sorted by ascendant date +bow.search.order.ascName=Your search results have been sorted by ascendant name +bow.search.order.descClick=Your search results have been sorted by descendant clicks number +bow.search.order.descDate=Your search results have been sorted by descendant date +bow.search.order.descName=Your search results have been sorted by descendant name bow.token.generate.successful=The token has been regenerated successfully Modified: trunk/bow-ui/src/main/resources/i18n/bow_fr_FR.properties =================================================================== --- trunk/bow-ui/src/main/resources/i18n/bow_fr_FR.properties 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/resources/i18n/bow_fr_FR.properties 2011-03-03 10:59:29 UTC (rev 228) @@ -1,16 +1,19 @@ bow.action.locale.english=English bow.action.locale.french=Fran\u00E7ais bow.admin.dataMigration=Migrer toutes les donn\u00E9es de la version 0.4 \u00E0 0.5 +bow.admin.dataMigration.success=Les donn\u00E9es ont \u00E9t\u00E9 migr\u00E9es avec succ\u00E8s bow.admin.dataReindexation=R\u00E9indexation des donn\u00E9es bow.admin.forbidden=Vous n'\u00EAtes pas administrateur \! bow.admin.home=Retour sur la page d''accueil bow.admin.panel=Panneau d''administration +bow.admin.reIndexationDone=Les donn\u00E9es ont bien \u00E9t\u00E9 r\u00E9index\u00E9es bow.bookmark.add.successful=Marque-page ajout\u00E9 avec succ\u00E8s bow.bookmark.badFileFormat=Mauvais format de fichier de favoris \: import impossible (le fichier doit avoir un format de type Netscape) bow.bookmark.description=Description bow.bookmark.import.delete.successful=Les marque-pages import\u00E9s ont \u00E9t\u00E9 supprim\u00E9s avec succ\u00E8s bow.bookmark.import.successful=Les marque-pages ont \u00E9t\u00E9 import\u00E9s avec succ\u00E8s bow.bookmark.remove.successful=Le marque-page a \u00E9t\u00E9 supprim\u00E9 avec succ\u00E8s +bow.bookmark.tag.deleted=Le tag a \u00E9t\u00E9 supprim\u00E9 avec succ\u00E8s bow.bookmark.tags=Tags bow.bookmark.update.successful=Le marque-page a \u00E9t\u00E9 mis \u00E0 jour avec succ\u00E8s bow.bookmarks.noBookmarks=Pas de marque-page @@ -107,6 +110,13 @@ bow.search.descdate=Date desc. bow.search.descname=Nom desc. bow.search.orderby=Trier par +bow.search.results.deleted=Les r\u00E9sultats de la recherche ont \u00E9t\u00E9 supprim\u00E9s avec succ\u00E8s bow.search.submit=Rechercher bow.search.title=Recherche +bow.search.order.ascClick=Les r\u00E9sultats de votre recherche ont \u00E9t\u00E9 tri\u00E9s par nombre de clics ascendants +bow.search.order.ascDate=Les r\u00E9sultats de votre recherche ont \u00E9t\u00E9 tri\u00E9s par date ascendante +bow.search.order.ascName=Les r\u00E9sultats de votre recherche ont \u00E9t\u00E9 tri\u00E9s par nom ascendant +bow.search.order.descClick=Les r\u00E9sultats de votre recherche ont \u00E9t\u00E9 tri\u00E9s par nombre de clics descendants +bow.search.order.descDate=Les r\u00E9sultats de votre recherche ont \u00E9t\u00E9 tri\u00E9s par date descendante +bow.search.order.descName=Les r\u00E9sultats de votre recherche ont \u00E9t\u00E9 tri\u00E9s par nom descendant bow.token.generate.successful=Le token a \u00E9t\u00E9 reg\u00E9n\u00E9r\u00E9 avec succ\u00E8s Modified: trunk/bow-ui/src/main/resources/struts.xml =================================================================== --- trunk/bow-ui/src/main/resources/struts.xml 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/resources/struts.xml 2011-03-03 10:59:29 UTC (rev 228) @@ -78,6 +78,7 @@ </interceptor-ref> <interceptor-ref name="loginStack" /> <result type="redirect">${redirectTo}</result> + <result name="input" type="redirect">${redirectTo}</result> </action> <action name="exportBookmarks" class="org.chorem.bow.action.ExportBookmarksAction"> <interceptor-ref name="loginStack" /> @@ -156,6 +157,9 @@ <result>/jsp/suggestions.jsp</result> </action> <action name="deleteSearchResults" class="org.chorem.bow.action.DeleteSearchResultsAction"> + <interceptor-ref name="store"> + <param name="operationMode">STORE</param> + </interceptor-ref> <interceptor-ref name="loginStack" /> <result type="redirectAction">home</result> </action> @@ -190,13 +194,16 @@ <result type="redirectAction">preferences</result> </action> <action name="deleteTag" class="org.chorem.bow.action.DeleteTagAction"> - <interceptor-ref name="loginStack" /> - <result type="redirect">${redirectTo}</result> + <interceptor-ref name="store"> + <param name="operationMode">STORE</param> + </interceptor-ref> + <interceptor-ref name="loginStack" /> + <result type="redirect">${redirectTo}</result> </action> <action name="redirectToUrl" class="org.chorem.bow.action.RedirectToUrlAction"> - <interceptor-ref name="loginStack" /> - <result name="error" type="redirectAction">home</result> - <result type="redirect">${link}</result> + <interceptor-ref name="loginStack" /> + <result name="error" type="redirectAction">home</result> + <result type="redirect">${link}</result> </action> <action name="*Xml"> <result>/jsp/{1}Xml.jsp</result> @@ -219,6 +226,9 @@ <result>/jsp/admin.jsp</result> </action> <action name="reIndexation" class="org.chorem.bow.action.ReIndexationAction"> + <interceptor-ref name="store"> + <param name="operationMode">STORE</param> + </interceptor-ref> <interceptor-ref name="loginStack" /> <result>/jsp/admin.jsp</result> </action> Modified: trunk/bow-ui/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/bow-ui/src/main/webapp/WEB-INF/web.xml 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/webapp/WEB-INF/web.xml 2011-03-03 10:59:29 UTC (rev 228) @@ -67,28 +67,12 @@ </listener> <!-- Servlets --> -<!-- <servlet> - <servlet-name>dwr</servlet-name> - <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> - <init-param> - <param-name>debug</param-name> - <param-value>true</param-value> - </init-param> - </servlet> - --> - <servlet> <servlet-name>jspSupportServlet</servlet-name> <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class> <load-on-startup>5</load-on-startup> </servlet> -<!-- -<servlet-mapping> - <servlet-name>dwr</servlet-name> - <url-pattern>/dwr/*</url-pattern> - </servlet-mapping> ---> <!-- Welcome file lists --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> Modified: trunk/bow-ui/src/main/webapp/css/bookmark.css =================================================================== --- trunk/bow-ui/src/main/webapp/css/bookmark.css 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/webapp/css/bookmark.css 2011-03-03 10:59:29 UTC (rev 228) @@ -33,7 +33,7 @@ } #header{ - background:#fff url('/bow/img/fondhead.jpg') repeat-x 0 0; + background:#fff url('../img/fondhead.jpg') repeat-x 0 0; float:left; position:absolute; right:85%; @@ -43,7 +43,7 @@ } #header a.logo{ - background:transparent url('/bow/img/logobow.jpg') repeat scroll 0 0; + background:transparent url('../img/logobow.jpg') repeat scroll 0 0; display:block; height:100px; text-indent:-99999px; @@ -106,7 +106,7 @@ } .bookmark .bookmarkhead .edit{ - background:url('/bow/img/edit.jpg') no-repeat; + background:url('../img/edit.jpg') no-repeat; width:31px; height:32px; position:absolute; @@ -115,7 +115,7 @@ } .bookmark .bookmarkhead .supprim{ - background:url('/bow/img/croix.jpg') no-repeat; + background:url('../img/croix.jpg') no-repeat; width:31px; height:32px; position:absolute; @@ -129,7 +129,7 @@ font-size:14px; line-height:32px; padding-left:40px; - background:url('/bow/img/ptit_livre.jpg') no-repeat; + background:url('../img/ptit_livre.jpg') no-repeat; height:32px; display:block; text-decoration:none; @@ -142,7 +142,7 @@ float:left; margin-right:15px; display:block; - background:url('/bow/img/ptit-livre.jpg') no-repeat; + background:url('../img/ptit-livre.jpg') no-repeat; } .bookmark .screenshot{ @@ -150,7 +150,7 @@ margin:5px 10px; width:100px; height:75px; - background:url('/bow/img/livreG.jpg') no-repeat; + background:url('../img/livreG.jpg') no-repeat; } .bookmark .description{ @@ -170,7 +170,7 @@ .bookmark .description .tags{ color:#88516c; - background:url('/bow/img/tag.jpg') no-repeat left center; + background:url('../img/tag.jpg') no-repeat left center; font-size:12px; padding-left:30px; height:auto; @@ -181,7 +181,7 @@ } .bookmark .click{ - background:transparent url('/bow/img/click.jpg') no-repeat scroll 0 0; + background:transparent url('../img/click.jpg') no-repeat scroll 0 0; float:right; height:27px; margin:10px -25px 5px 5px; @@ -202,12 +202,12 @@ position:relative; right:67%; width:33%; - background:#BF8A9C url('/bow/img/moyen-livre.jpg') no-repeat scroll 7% 44%; + background:#BF8A9C url('../img/moyen-livre.jpg') no-repeat scroll 7% 44%; height:100px; } #logoutDiv a.help{ - background:transparent url('/bow/img/aide.jpg') no-repeat scroll 0 0; + background:transparent url('../img/aide.jpg') no-repeat scroll 0 0; display:block; height:34px; text-indent:-99999px; @@ -218,7 +218,7 @@ } #logoutDiv form input{ - background:transparent url('/bow/img/fondbouton.jpg') repeat-x scroll 0 0; + background:transparent url('../img/fondbouton.jpg') repeat-x scroll 0 0; border:medium none; color:#9C7186; font-size:12px; @@ -332,7 +332,7 @@ } #colonneD form input[type="submit"]{ - background:transparent url('/bow/img/fondbouton.jpg') repeat-x scroll 0 0; + background:transparent url('../img/fondbouton.jpg') repeat-x scroll 0 0; border:medium none; color:#9C7186; display:block; @@ -369,7 +369,7 @@ .formFrame{ width:365px; height:315px; - background:url('/bow/img/fondconnexion.jpg') no-repeat; + background:url('../img/fondconnexion.jpg') no-repeat; position:relative; margin-top:20px; margin-bottom:20px; @@ -403,7 +403,7 @@ .formFrame input[type="submit"]{ float:left; margin-top:20px; - background:url('/bow/img/fdboutonV.jpg') repeat-x; + background:url('../img/fdboutonV.jpg') repeat-x; height:31px; line-height:31px; color:#FFFFFF; @@ -457,7 +457,7 @@ } .deleteImport .deleteImportButton{ - background:url('/bow/img/croixtr.png') no-repeat; + background:url('../img/croixtr.png') no-repeat; width:31px; height:32px; float:right; @@ -467,7 +467,7 @@ } #deleteSearchResultsButton{ - background:url('/bow/img/croixtr.png') no-repeat; + background:url('../img/croixtr.png') no-repeat; width:31px; height:32px; float:right; Modified: trunk/bow-ui/src/main/webapp/css/connexion.css =================================================================== --- trunk/bow-ui/src/main/webapp/css/connexion.css 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/webapp/css/connexion.css 2011-03-03 10:59:29 UTC (rev 228) @@ -24,7 +24,7 @@ */ #header{ - background:#FFFFFF url('/bow/img/fondhead.jpg') repeat-x; + background:#FFFFFF url('../img/fondhead.jpg') repeat-x; width:100%; float:left; height:100px; @@ -34,7 +34,7 @@ } #header a.logo{ - background:transparent url('/bow/img/logobow.jpg') repeat scroll 0 0; + background:transparent url('../img/logobow.jpg') repeat scroll 0 0; display:block; height:100px; text-indent:-99999px; @@ -70,7 +70,7 @@ #formFrame{ width:225px; height:315px; - background:url('/bow/img/fondconnexion.jpg') no-repeat; + background:url('../img/fondconnexion.jpg') no-repeat; position:relative; margin:100px auto; padding:10px 70px; @@ -122,7 +122,7 @@ input[type="submit"]{ float:right; margin-top:20px; - background:url('/bow/img/fdboutonV.jpg') repeat-x; + background:url('../img/fdboutonV.jpg') repeat-x; height:31px; line-height:31px; color:#FFFFFF; Modified: trunk/bow-ui/src/main/webapp/css/global.css =================================================================== --- trunk/bow-ui/src/main/webapp/css/global.css 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/webapp/css/global.css 2011-03-03 10:59:29 UTC (rev 228) @@ -59,7 +59,7 @@ #main .menu{ width:90%; height:35px; - background:#804561 url('/bow/img/pointemenu.jpg') no-repeat right; + background:#804561 url('../img/pointemenu.jpg') no-repeat right; margin-bottom:15px; padding:0 40px; line-height:35px; Modified: trunk/bow-ui/src/main/webapp/jsp/inc/bookmark.jsp =================================================================== --- trunk/bow-ui/src/main/webapp/jsp/inc/bookmark.jsp 2011-02-25 17:31:10 UTC (rev 227) +++ trunk/bow-ui/src/main/webapp/jsp/inc/bookmark.jsp 2011-03-03 10:59:29 UTC (rev 228) @@ -28,76 +28,78 @@ xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" xmlns:jsp="http://java.sun.com/JSP/Page"> - <s:set var="searchLine" value="%{#request.searchLine}" /> - <s:set var="fullTextLine" value="%{#request.fullTextLine}" /> - <s:set var="wikittyId" value="%{#request.bookmark.getWikittyId()}" /> - <s:set var="bookmarkLink" value="%{#request.bookmark.getLink()}" /> - <s:set var="bookmarkAlias" value="%{#request.bookmark.getPrivateAlias()}" /> - <s:set var="bookmarkDescription" value="%{#request.bookmark.getDescription()}" /> - <s:set var="bookmarkClicks" value="%{#request.bookmark.getClick()}" /> - <s:set var="formBookmarkId" value="%{#request.formBookmarkId}" /> - <s:set var="aliasUrl" value="%{@org.chorem.bow.BowConfig@getInstance().getServletAliasUrl() + #bookmarkAlias}" /> - <s:set var="date" value="%{#request.sdf.format(#request.bookmark.getCreationDate())}" /> - - <div class="bookmarkhead"> - <s:a cssClass="alias" href="%{#aliasUrl}" title="%{#bookmarkLink}" onclick="window.open(this.href); return false;"> - <s:property value="%{#bookmarkAlias}" /> - </s:a> - <p class="date">(<s:property value="%{date}" />)</p> - <s:url var="editBookmarkModify" action="modifyBookmark" escapeAmp="false"> - <s:param name="bookmarkId"><s:property value="%{#wikittyId}" /></s:param> - <s:param name="searchLine"><s:property value="%{#searchLine}" /></s:param> - <s:param name="fullTextLine"><s:property value="%{#fullTextLine}" /></s:param> - </s:url> - <s:url var="editBookmark" action="modifyBookmark" escapeAmp="true"> - <s:param name="bookmarkId"><s:property value="%{#wikittyId}" /></s:param> - <s:param name="searchLine"><s:property value="%{#searchLine}" /></s:param> - <s:param name="fullTextLine"><s:property value="%{#fullTextLine}" /></s:param> - </s:url> - <s:a cssClass="edit" href="%{editBookmark}" onclick="return modify('%{#bookmarkDescription}', '%{#bookmarkAlias}', '%{@org.chorem.bow.BookmarkUtils@getBookmarkTagsString(#request.bookmark)}', '%{#bookmarkLink}', '%{editBookmarkModify}', '%{#wikittyId}');"></s:a> - <s:url var="removeBookmark" action="removeBookmark" escapeAmp="true"> - <s:param name="bookmarkId"><s:property value="%{#wikittyId}" /></s:param> - <s:param name="searchLine"><s:property value="%{#searchLine}" /></s:param> - <s:param name="fullTextLine"><s:property value="%{#fullTextLine}" /></s:param> - </s:url> - <s:a cssClass="supprim" href="%{removeBookmark}"></s:a> - </div> - <div class="bookmarkcontenu"> - <div class="screenshot"></div> - <div class="click"><s:property value="%{#bookmarkClicks}" /></div> - <div class="description"> - <h3><s:text name="bow.bookmark.description" /> :</h3> - <p> - <s:url var="redirectTo" action="redirectToUrl"> - <s:param name="bookmarkId"><s:property value="%{#wikittyId}" /></s:param> - </s:url> - <s:a title="%{#bookmarkLink}" href="%{redirectTo}" onclick="window.open(this.href); return false;"><s:property value="%{#bookmarkDescription}" /></s:a> - </p> - <p class="tags"> - <strong><s:text name="bow.bookmark.tags" /> :</strong> - <s:iterator value="#request.bookmark.labels"> - <s:url var="deleteTag" action="deleteTag"> - <s:param name="bookmarkId"><s:property value="%{#wikittyId}" /></s:param> - <s:param name="deleteTag"><s:property /></s:param> - <s:param name="searchLine"><s:property value="%{#searchLine}" /></s:param> - <s:param name="fullTextLine"><s:property value="%{#fullTextLine}" /></s:param> - </s:url> - <s:if test="%{!(formBookmarkId == null || !formBookmarkId.equals(wikittyId))}"> - <s:a cssStyle="text-decoration:none;" href="%{deleteTag}"> - <img style="border:none;" src="img/delete.png" alt="Delete tag" title="Delete" /> - </s:a> - </s:if> - <s:else> - <s:a name="%{#wikittyId}" cssStyle="display:none; text-decoration:none;" href="%{#deleteTag}"> - <img style="border:none;" src="img/delete.png" alt="Delete tag" title="Delete" /> - </s:a> - </s:else> - <s:url var="search" action="search"> - <s:param name="searchLine"><s:property /></s:param> - </s:url> - <s:a href="%{search}" cssStyle="text-decoration:none"><s:property /></s:a> - </s:iterator> - </p> + <s:if test="%{#request.bookmark != null}"> + <s:set var="searchLine" value="%{#request.searchLine}" /> + <s:set var="fullTextLine" value="%{#request.fullTextLine}" /> + <s:set var="wikittyId" value="%{#request.bookmark.getWikittyId()}" /> + <s:set var="bookmarkLink" value="%{#request.bookmark.getLink()}" /> + <s:set var="bookmarkAlias" value="%{#request.bookmark.getPrivateAlias()}" /> + <s:set var="bookmarkDescription" value="%{#request.bookmark.getDescription()}" /> + <s:set var="bookmarkClicks" value="%{#request.bookmark.getClick()}" /> + <s:set var="formBookmarkId" value="%{#request.formBookmarkId}" /> + <s:set var="aliasUrl" value="%{@org.chorem.bow.BowConfig@getInstance().getServletAliasUrl() + #bookmarkAlias}" /> + <s:set var="date" value="%{#request.sdf.format(#request.bookmark.getCreationDate())}" /> + + <div class="bookmarkhead"> + <s:a cssClass="alias" href="%{#aliasUrl}" title="%{#bookmarkLink}" onclick="window.open(this.href); return false;"> + <s:property value="%{#bookmarkAlias}" /> + </s:a> + <p class="date">(<s:property value="%{date}" />)</p> + <s:url var="editBookmarkModify" action="modifyBookmark" escapeAmp="false"> + <s:param name="bookmarkId"><s:property value="%{#wikittyId}" /></s:param> + <s:param name="searchLine"><s:property value="%{#searchLine}" /></s:param> + <s:param name="fullTextLine"><s:property value="%{#fullTextLine}" /></s:param> + </s:url> + <s:url var="editBookmark" action="modifyBookmark" escapeAmp="true"> + <s:param name="bookmarkId"><s:property value="%{#wikittyId}" /></s:param> + <s:param name="searchLine"><s:property value="%{#searchLine}" /></s:param> + <s:param name="fullTextLine"><s:property value="%{#fullTextLine}" /></s:param> + </s:url> + <s:a cssClass="edit" href="%{editBookmark}" onclick="return modify('%{#bookmarkDescription}', '%{#bookmarkAlias}', '%{@org.chorem.bow.BookmarkUtils@getBookmarkTagsString(#request.bookmark)}', '%{#bookmarkLink}', '%{editBookmarkModify}', '%{#wikittyId}');"></s:a> + <s:url var="removeBookmark" action="removeBookmark" escapeAmp="true"> + <s:param name="bookmarkId"><s:property value="%{#wikittyId}" /></s:param> + <s:param name="searchLine"><s:property value="%{#searchLine}" /></s:param> + <s:param name="fullTextLine"><s:property value="%{#fullTextLine}" /></s:param> + </s:url> + <s:a cssClass="supprim" href="%{removeBookmark}"></s:a> </div> - </div> + <div class="bookmarkcontenu"> + <div class="screenshot"></div> + <div class="click"><s:property value="%{#bookmarkClicks}" /></div> + <div class="description"> + <h3><s:text name="bow.bookmark.description" /> :</h3> + <p> + <s:url var="redirectTo" action="redirectToUrl"> + <s:param name="bookmarkId"><s:property value="%{#wikittyId}" /></s:param> + </s:url> + <s:a title="%{#bookmarkLink}" href="%{redirectTo}" onclick="window.open(this.href); return false;"><s:property value="%{#bookmarkDescription}" /></s:a> + </p> + <p class="tags"> + <strong><s:text name="bow.bookmark.tags" /> :</strong> + <s:iterator value="#request.bookmark.labels"> + <s:url var="deleteTag" action="deleteTag"> + <s:param name="bookmarkId"><s:property value="%{#wikittyId}" /></s:param> + <s:param name="deleteTag"><s:property /></s:param> + <s:param name="searchLine"><s:property value="%{#searchLine}" /></s:param> + <s:param name="fullTextLine"><s:property value="%{#fullTextLine}" /></s:param> + </s:url> + <s:if test="%{!(formBookmarkId == null || !formBookmarkId.equals(wikittyId))}"> + <s:a cssStyle="text-decoration:none;" href="%{deleteTag}"> + <img style="border:none;" src="img/delete.png" alt="Delete tag" title="Delete" /> + </s:a> + </s:if> + <s:else> + <s:a name="%{#wikittyId}" cssStyle="display:none; text-decoration:none;" href="%{#deleteTag}"> + <img style="border:none;" src="img/delete.png" alt="Delete tag" title="Delete" /> + </s:a> + </s:else> + <s:url var="search" action="search"> + <s:param name="searchLine"><s:property /></s:param> + </s:url> + <s:a href="%{search}" cssStyle="text-decoration:none"><s:property /></s:a> + </s:iterator> + </p> + </div> + </div> + </s:if> </div>
participants (1)
-
vbriand@users.chorem.org