branch develop updated (a074606 -> 2ed8277)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository bow. See http://git.chorem.org/bow.git from a074606 fixes #1203: Pouvoir masquer les resultats filtres ayant un certain tag new cfd39ae upgrade library new 2ed8277 fixes #1262: add support to track bookmark add throw atom feed The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 2ed827771826047996d6003f1a7fdcda3a2c86ec Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Fri Jul 17 18:30:14 2015 +0200 fixes #1262: add support to track bookmark add throw atom feed commit cfd39ae60c6a4aa350810fa29ad97727868ec3a8 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Fri Jul 17 01:08:38 2015 +0200 upgrade library Summary of changes: bow-ui/pom.xml | 25 ++-- bow-ui/src/main/java/org/chorem/bow/BowConfig.java | 2 +- .../main/java/org/chorem/bow/BowConfigOption.java | 55 ++++----- bow-ui/src/main/java/org/chorem/bow/BowProxy.java | 2 +- .../java/org/chorem/bow/action/AliasAction.java | 14 +-- .../java/org/chorem/bow/action/AtomAction.java | 117 +++++++++++++++++++ .../bow/action/admin/ReIndexationAction.java | 2 +- .../bow/action/bookmark/AddOrUpdateAction.java | 14 +-- .../action/bookmark/DeleteSearchResultsAction.java | 4 +- .../org/chorem/bow/action/bookmark/EditAction.java | 2 +- .../org/chorem/bow/action/bookmark/HomeAction.java | 2 +- .../chorem/bow/action/bookmark/RemoveAction.java | 4 +- .../bow/action/bookmark/ScreenshotAction.java | 6 +- .../bow/action/login/ForgotPasswordAction.java | 14 +-- .../org/chorem/bow/action/login/LoginAction.java | 8 +- .../chorem/bow/action/login/RegisterAction.java | 18 +-- .../action/opensearch/OpenSearchResultAction.java | 2 +- .../opensearch/OpenSearchSuggestionAction.java | 2 +- .../bow/action/opensearch/SuggestionAction.java | 2 +- .../bow/action/preference/AdminTagAction.java | 2 +- .../bow/action/preference/DeleteImportAction.java | 4 +- .../bow/action/preference/GenerateTokenAction.java | 4 +- .../action/preference/ImportBookmarksAction.java | 10 +- .../action/preference/PreferenceBaseAction.java | 2 +- .../bow/action/preference/UpdateSiteAction.java | 6 +- .../bow/action/preference/UpdateUserAction.java | 12 +- .../main/resources/i18n/bow-ui_en_GB.properties | 6 +- .../main/resources/i18n/bow-ui_fr_FR.properties | 124 ++++++++++---------- bow-ui/src/main/resources/struts.xml | 8 +- bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp | 129 +++++++++++++++++++++ pom.xml | 23 ++-- 31 files changed, 443 insertions(+), 182 deletions(-) create mode 100644 bow-ui/src/main/java/org/chorem/bow/action/AtomAction.java create mode 100644 bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository bow. See http://git.chorem.org/bow.git commit cfd39ae60c6a4aa350810fa29ad97727868ec3a8 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Fri Jul 17 01:08:38 2015 +0200 upgrade library --- bow-ui/pom.xml | 25 ++--- bow-ui/src/main/java/org/chorem/bow/BowConfig.java | 2 +- .../main/java/org/chorem/bow/BowConfigOption.java | 55 ++++----- bow-ui/src/main/java/org/chorem/bow/BowProxy.java | 2 +- .../java/org/chorem/bow/action/AliasAction.java | 14 +-- .../bow/action/admin/ReIndexationAction.java | 2 +- .../bow/action/bookmark/AddOrUpdateAction.java | 14 +-- .../action/bookmark/DeleteSearchResultsAction.java | 4 +- .../org/chorem/bow/action/bookmark/EditAction.java | 2 +- .../org/chorem/bow/action/bookmark/HomeAction.java | 2 +- .../chorem/bow/action/bookmark/RemoveAction.java | 4 +- .../bow/action/bookmark/ScreenshotAction.java | 6 +- .../bow/action/login/ForgotPasswordAction.java | 14 +-- .../org/chorem/bow/action/login/LoginAction.java | 8 +- .../chorem/bow/action/login/RegisterAction.java | 18 +-- .../action/opensearch/OpenSearchResultAction.java | 2 +- .../opensearch/OpenSearchSuggestionAction.java | 2 +- .../bow/action/opensearch/SuggestionAction.java | 2 +- .../bow/action/preference/AdminTagAction.java | 2 +- .../bow/action/preference/DeleteImportAction.java | 4 +- .../bow/action/preference/GenerateTokenAction.java | 4 +- .../action/preference/ImportBookmarksAction.java | 10 +- .../action/preference/PreferenceBaseAction.java | 2 +- .../bow/action/preference/UpdateSiteAction.java | 6 +- .../bow/action/preference/UpdateUserAction.java | 12 +- .../main/resources/i18n/bow-ui_en_GB.properties | 6 +- .../main/resources/i18n/bow-ui_fr_FR.properties | 124 +++++++++++---------- pom.xml | 23 ++-- 28 files changed, 190 insertions(+), 181 deletions(-) diff --git a/bow-ui/pom.xml b/bow-ui/pom.xml index ebf0fc1..89aa74a 100644 --- a/bow-ui/pom.xml +++ b/bow-ui/pom.xml @@ -42,6 +42,11 @@ </dependency> <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-config</artifactId> + </dependency> + + <dependency> <groupId>org.nuiton.web</groupId> <artifactId>nuiton-struts2</artifactId> </dependency> @@ -218,7 +223,7 @@ <plugins> <plugin> <groupId>org.nuiton.eugene</groupId> - <artifactId>maven-eugene-plugin</artifactId> + <artifactId>eugene-maven-plugin</artifactId> <executions> <execution> <id>api generator</id> @@ -255,7 +260,7 @@ <plugin> <groupId>org.nuiton.i18n</groupId> - <artifactId>maven-i18n-plugin</artifactId> + <artifactId>i18n-maven-plugin</artifactId> <executions> <execution> <id>scan-java-sources</id> @@ -266,22 +271,10 @@ <execution> <id>scan-jsp-sources</id> <goals> - <goal>parserJsp</goal> + <goal>parserStruts2</goal> </goals> <configuration> - <userRulesFiles> - <file>${basedir}/src/main/i18n/jsp.rules</file> - </userRulesFiles> - <namespaces> - <s>http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd</s> - <sx> - http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd - </sx> - <jsp>http://java.sun.com/JSP/Page</jsp> - <decorator> - http://www.opensymphony.com/sitemesh/decorator - </decorator> - </namespaces> + <acceptKeyFormat>^bow\..*$</acceptKeyFormat> </configuration> </execution> <execution> diff --git a/bow-ui/src/main/java/org/chorem/bow/BowConfig.java b/bow-ui/src/main/java/org/chorem/bow/BowConfig.java index bd185ce..b40aa59 100644 --- a/bow-ui/src/main/java/org/chorem/bow/BowConfig.java +++ b/bow-ui/src/main/java/org/chorem/bow/BowConfig.java @@ -22,7 +22,7 @@ package org.chorem.bow; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.util.ApplicationConfig; +import org.nuiton.config.ApplicationConfig; import org.nuiton.util.StringUtil; import org.nuiton.wikitty.WikittyConfigOption; diff --git a/bow-ui/src/main/java/org/chorem/bow/BowConfigOption.java b/bow-ui/src/main/java/org/chorem/bow/BowConfigOption.java index 7d3a68d..6084cce 100644 --- a/bow-ui/src/main/java/org/chorem/bow/BowConfigOption.java +++ b/bow-ui/src/main/java/org/chorem/bow/BowConfigOption.java @@ -20,109 +20,110 @@ */ package org.chorem.bow; -import org.nuiton.util.ApplicationConfig; +import org.nuiton.config.ApplicationConfig; +import org.nuiton.config.ConfigOptionDef; -import static org.nuiton.i18n.I18n._; +import static org.nuiton.i18n.I18n.t; /** Bow option definition. */ -public enum BowConfigOption implements ApplicationConfig.OptionDef { +public enum BowConfigOption implements ConfigOptionDef { CONFIG_FILE( ApplicationConfig.CONFIG_FILE_NAME, - _("bow.config.configFileName.description"), + t("bow.config.configFileName.description"), "bow.properties", String.class, false, false), APPLICATION_VERSION( "application.version", - _("bow.config.application.version.description"), + t("bow.config.application.version.description"), null, String.class, true, true), BOW_URL( "bow.url", - _("bow.config.bow.url.description"), + t("bow.config.bow.url.description"), null, String.class, false, false), // For apache url rewriting ALIAS_URL( "alias.url", - _("bow.config.alias.url.description"), + t("bow.config.alias.url.description"), "alias/", String.class, false, false), BOW_SCREENSHOT_URL( "bow.screenshot.url", - _("bow.config.bow.screenshot.url.description"), + t("bow.config.bow.screenshot.url.description"), "http://screenshotweb.codelutin.com/screenshotweb.cgi?URL=%s&FILENAME=screenshot.png&VIEWPORT=1024*1182&CLIPRECT=0*0*1024*1182&SCALE=65x75", String.class, false, false), BOW_SMTPSERVER( "bow.smtpServer", - _("bow.config.bow.smtpServer.description"), + t("bow.config.bow.smtpServer.description"), null, String.class, false, false), BOW_ADDRESSFROM( "bow.addressFrom", - _("bow.config.bow.addressFrom.description"), + t("bow.config.bow.addressFrom.description"), null, String.class, false, false), BOW_ADMINS( "bow.admins", - _("bow.config.bow.admins.description"), + t("bow.config.bow.admins.description"), null, String.class, false, false), SEARCH_ENGINE( "search.engine", - _("bow.config.search.engine.description"), + t("bow.config.search.engine.description"), null, String.class, false, false), TAG_SEARCH_URL( "bow.prefix.search.tag", - _("bow.config.sprefix.search.tag.description"), + t("bow.config.sprefix.search.tag.description"), "home.action?tagLine={searchTerms}", String.class, false, false), FULLTEXT_SEARCH_URL( "bow.prefix.search.fulltext", - _("bow.config.bow.prefix.search.fulltext.description"), + t("bow.config.bow.prefix.search.fulltext.description"), "home.action?fullTextLine={searchTerms}", String.class, false, false), ALIAS_SEARCH_URL( "bow.prefix.search.alias", - _("bow.config.bow.prefix.search.alias.description"), + t("bow.config.bow.prefix.search.alias.description"), "alias.action?alias={searchTerms}", String.class, false, false), SAVE_SEARCH_URL( "bow.prefix.search.add", - _("bow.config.bow.prefix.search.add.description"), + t("bow.config.bow.prefix.search.add.description"), "addUrl.action?nameAndTags={searchTerms}", String.class, false, false), TAG_SUGGESTION_URL( "bow.prefix.suggestion.tag", - _("bow.config.sprefix.suggestion.tag.description"), + t("bow.config.sprefix.suggestion.tag.description"), "suggestion-tag.action?q={searchTerms}", String.class, false, false), FULLTEXT_SUGGESTION_URL( "bow.prefix.suggestion.fulltext", - _("bow.config.bow.prefix.suggestion.fulltext.description"), + t("bow.config.bow.prefix.suggestion.fulltext.description"), "suggestion-fulltext.action?q={searchTerms}", String.class, false, false), ALIAS_SUGGESTION_URL( "bow.prefix.suggestion.alias", - _("bow.config.bow.prefix.suggestion.alias.description"), + t("bow.config.bow.prefix.suggestion.alias.description"), "suggestion-alias.action?q={searchTerms}", String.class, false, false), OPEN_SEARCH_DEFAULT_ACTION( "opensearch.default.action", - _("bow.config.opensearch.default.action.description"), + t("bow.config.opensearch.default.action.description"), "w", String.class, false, false), OPEN_SEARCH_PREFIX_SEPARATOR( "opensearch.prefix.separator", - _("bow.config.opensearch.prefix.separator.description"), + t("bow.config.opensearch.prefix.separator.description"), ":", String.class, false, false), OPEN_SEARCH_DEFAULT_PREFIX( "opensearch.default.prefix", - _("bow.config.opensearch.default.prefix.description"), + t("bow.config.opensearch.default.prefix.description"), "t", String.class, false, false), OPEN_SEARCH_TAG_SEARCH_PREFIX( "opensearch.tag.search.prefix", - _("bow.config.opensearch.tag.search.prefix.description"), + t("bow.config.opensearch.tag.search.prefix.description"), "t", String.class, false, false), OPEN_SEARCH_FULLTEXT_SEARCH_PREFIX( "opensearch.fulltext.search.prefix", - _("bow.config.opensearch.fulltext.search.prefix.description"), + t("bow.config.opensearch.fulltext.search.prefix.description"), "f", String.class, false, false), OPEN_SEARCH_WEB_SEARCH_PREFIX( "opensearch.web.search.prefix", - _("bow.config.opensearch.web.search.prefix.description"), + t("bow.config.opensearch.web.search.prefix.description"), "w", String.class, false, false), OPEN_SEARCH_ALIAS_PREFIX( "opensearch.alias.prefix", - _("bow.config.opensearch.alias.prefix.description"), + t("bow.config.opensearch.alias.prefix.description"), "a", String.class, false, false), OPEN_SEARCH_ADD_PREFIX( "opensearch.add.prefix", - _("bow.config.opensearch.add.prefix.description"), + t("bow.config.opensearch.add.prefix.description"), "s", String.class, false, false); public String key; diff --git a/bow-ui/src/main/java/org/chorem/bow/BowProxy.java b/bow-ui/src/main/java/org/chorem/bow/BowProxy.java index 64258de..09f70cc 100644 --- a/bow-ui/src/main/java/org/chorem/bow/BowProxy.java +++ b/bow-ui/src/main/java/org/chorem/bow/BowProxy.java @@ -20,7 +20,7 @@ */ package org.chorem.bow; -import org.nuiton.util.ApplicationConfig; +import org.nuiton.config.ApplicationConfig; import org.nuiton.wikitty.WikittyService; import org.nuiton.wikitty.WikittyServiceFactory; import org.nuiton.wikitty.entities.WikittyExtension; diff --git a/bow-ui/src/main/java/org/chorem/bow/action/AliasAction.java b/bow-ui/src/main/java/org/chorem/bow/action/AliasAction.java index a8a6a8c..f3d90da 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/AliasAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/AliasAction.java @@ -97,12 +97,12 @@ public class AliasAction extends BowBaseAction { proxy.store(bookmark); } else { log.error(String.format("No bookmark with alias or id '%s'", alias)); - addActionError(_("bow.alias.bookmarkId.unknown", alias)); + addActionError(t("bow.alias.bookmarkId.unknown", alias)); result = ERROR; } } } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); result = ERROR; } @@ -120,7 +120,7 @@ public class AliasAction extends BowBaseAction { BowBookmark bookmark = proxy.findByQuery(BowBookmark.class, criteria); if (bookmark != null) { - addActionError(_("bow.alias.already.exists", alias)); + addActionError(t("bow.alias.already.exists", alias)); log.error("A bookmark already exists with alias " + alias); result = ERROR; @@ -130,14 +130,14 @@ public class AliasAction extends BowBaseAction { bookmark.setPublicAlias(alias); proxy.store(bookmark); } else { - addActionError(_("bow.alias.bookmarkId.unknown", bookmarkId)); + addActionError(t("bow.alias.bookmarkId.unknown", bookmarkId)); log.debug("No bookmark with id " + bookmarkId); result = ERROR; } } } } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); result = ERROR; } @@ -156,12 +156,12 @@ public class AliasAction extends BowBaseAction { bookmark.setPublicAlias(null); proxy.store(bookmark); } else { - addActionError(_("bow.alias.bookmarkId.unknown", bookmarkId)); + addActionError(t("bow.alias.bookmarkId.unknown", bookmarkId)); log.error("No bookmark with id " + bookmarkId); result = ERROR; } } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); result = ERROR; } diff --git a/bow-ui/src/main/java/org/chorem/bow/action/admin/ReIndexationAction.java b/bow-ui/src/main/java/org/chorem/bow/action/admin/ReIndexationAction.java index 7bef2d9..d09c94a 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/admin/ReIndexationAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/admin/ReIndexationAction.java @@ -45,7 +45,7 @@ public class ReIndexationAction extends BowBaseAction { BowProxy proxy = getBowProxy(); proxy.syncSearchEngine(); - addActionMessage(_("bow.admin.reIndexationDone")); + addActionMessage(t("bow.admin.reIndexationDone")); } } catch (Exception eee) { addActionError(("bow.error.internal")); diff --git a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java index 65e787b..640023d 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java @@ -238,7 +238,7 @@ public class AddOrUpdateAction extends BowBaseAction { // // if (bookmark != null || bookmarkToModify != null) { // proxy.store(bookmark, bookmarkToModify); //Stores the bookmark if everything is ok -// addActionMessage(_("bow.bookmark.add.successful")); +// addActionMessage(t("bow.bookmark.add.successful")); // if (log.isDebugEnabled()) { // log.debug("Adding URL"); // } @@ -246,7 +246,7 @@ public class AddOrUpdateAction extends BowBaseAction { // redirectTo = BowUtils.redirectTo(tagLine, fullTextLine); // } catch (Exception eee) { // result = ERROR; -// addActionError(_("bow.error.internal")); +// addActionError(t("bow.error.internal")); // log.error(eee.getMessage(), eee); // } // return result; @@ -318,7 +318,7 @@ public class AddOrUpdateAction extends BowBaseAction { bookmark = new BowBookmarkImpl(); bookmark.setClick(0); bookmark.setOwner(user); - bookmark.addReader(user); // only owner can read it + bookmark.addReader(user.getWikittyId()); // only owner can read it bookmark.setCreationDate(new Date()); if (user.getScreenshot()) { @@ -359,7 +359,7 @@ public class AddOrUpdateAction extends BowBaseAction { bookmark.getWikittyId().equals(aliasResult.get(0))) { bookmark.setPrivateAlias(privateAlias); } else { - addActionMessage(_("bow.alias.already.exists", privateAlias)); + addActionMessage(t("bow.alias.already.exists", privateAlias)); } } @@ -375,19 +375,19 @@ public class AddOrUpdateAction extends BowBaseAction { bookmark.getWikittyId().equals(aliasResult.get(0))) { bookmark.setPublicAlias(publicAlias); } else { - addActionMessage(_("bow.alias.already.exists", publicAlias)); + addActionMessage(t("bow.alias.already.exists", publicAlias)); } } proxy.store(bookmark); //Stores the bookmark if everything is ok - addActionMessage(_("bow.bookmark.add.successful")); + addActionMessage(t("bow.bookmark.add.successful")); if (log.isDebugEnabled()) { log.debug("Adding URL"); } redirectTo = BowUtils.redirectTo(tagLine, fullTextLine); } catch (Exception eee) { result = ERROR; - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); } return result; diff --git a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/DeleteSearchResultsAction.java b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/DeleteSearchResultsAction.java index 9e9d7d0..db0f67c 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/DeleteSearchResultsAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/DeleteSearchResultsAction.java @@ -64,10 +64,10 @@ public class DeleteSearchResultsAction extends BowBaseAction { } proxy.delete(ids); - addActionMessage(_("bow.search.results.deleted")); + addActionMessage(t("bow.search.results.deleted")); } } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); } return SUCCESS; diff --git a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/EditAction.java b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/EditAction.java index a0cdcf7..2cdf87b 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/EditAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/EditAction.java @@ -69,7 +69,7 @@ public class EditAction extends BowBaseAction { .ideq(id).end(); bookmark = proxy.findByQuery(BowBookmark.class, criteria); } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); } return SUCCESS; diff --git a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/HomeAction.java b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/HomeAction.java index 87c3a74..56dab4c 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/HomeAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/HomeAction.java @@ -107,7 +107,7 @@ public class HomeAction extends BowBaseAction { try { load(); } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); } timeLog.log(start, "execute"); diff --git a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/RemoveAction.java b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/RemoveAction.java index 8a0c131..f59e8bd 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/RemoveAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/RemoveAction.java @@ -63,9 +63,9 @@ public class RemoveAction extends BowBaseAction { try { BowProxy proxy = getBowProxy(); proxy.delete(bookmarkId); - addActionMessage(_("bow.bookmark.remove.successful")); + addActionMessage(t("bow.bookmark.remove.successful")); } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error("Can't do action", eee); } } diff --git a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/ScreenshotAction.java b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/ScreenshotAction.java index c202197..12f8fa6 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/ScreenshotAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/ScreenshotAction.java @@ -75,14 +75,14 @@ public class ScreenshotAction extends BowBaseAction { if (ArrayUtils.isNotEmpty(screenshot) ) { bookmark.setScreenshot(screenshot); changed = true; - addActionMessage(_("bow.bookmark.screenshot.updated.successful")); + addActionMessage(t("bow.bookmark.screenshot.updated.successful")); } // on essaie de recuperer le favicone byte[] favicone = BookmarkUtils.getFavicon(link); if (ArrayUtils.isNotEmpty(favicone)) { bookmark.setFavicon(favicone); changed = true; - addActionMessage(_("bow.bookmark.favicon.updated.successful")); + addActionMessage(t("bow.bookmark.favicon.updated.successful")); } if (changed) { @@ -90,7 +90,7 @@ public class ScreenshotAction extends BowBaseAction { } } } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error("Can't do action", eee); } } diff --git a/bow-ui/src/main/java/org/chorem/bow/action/login/ForgotPasswordAction.java b/bow-ui/src/main/java/org/chorem/bow/action/login/ForgotPasswordAction.java index 097bec5..15bb152 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/login/ForgotPasswordAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/login/ForgotPasswordAction.java @@ -84,12 +84,12 @@ public class ForgotPasswordAction extends BowBaseAction { try { String mailContent; - mailContent = _("bow.register.mailHi") + - ",\n\n" + _("bow.register.mailPwd") + ": " + - password + "\n\n" + _("bow.register.mailEmail") + + mailContent = t("bow.register.mailHi") + + ",\n\n" + t("bow.register.mailPwd") + ": " + + password + "\n\n" + t("bow.register.mailEmail") + ": " + email + "\n\n"; BowMail.sendMail(email, - _("bow.register.mailSubject"), + t("bow.register.mailSubject"), mailContent); //The password is changed only if the mail has been sent @@ -97,7 +97,7 @@ public class ForgotPasswordAction extends BowBaseAction { proxy.store(user); } catch (AddressException eee) { //If the email address is invalid - addActionError(_("bow.mail.badFormat")); + addActionError(t("bow.mail.badFormat")); log.error(String.format("Can't send message email to '%s'", email), eee); } catch (MessagingException eee) { @@ -108,11 +108,11 @@ public class ForgotPasswordAction extends BowBaseAction { result = SUCCESS; } else { //If the email is not associated with an account addFieldError("email", - _("bow.forgotPassword.emailDoesntExist")); + t("bow.forgotPassword.emailDoesntExist")); } } } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); } return result; diff --git a/bow-ui/src/main/java/org/chorem/bow/action/login/LoginAction.java b/bow-ui/src/main/java/org/chorem/bow/action/login/LoginAction.java index 45c357c..4782b97 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/login/LoginAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/login/LoginAction.java @@ -91,10 +91,10 @@ public class LoginAction extends BowBaseAction { result = new BowUserImpl(); result.setLogin(email); result.setPassword(configPassword); - addActionMessage(_("bow.login.admin.failback")); - log.warn(_("bow.login.admin.failback")); + addActionMessage(t("bow.login.admin.failback")); + log.warn(t("bow.login.admin.failback")); } else { - addActionError(_("bow.login.authenticationFailure")); + addActionError(t("bow.login.authenticationFailure")); } } return result; @@ -121,7 +121,7 @@ public class LoginAction extends BowBaseAction { } } } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); } return result; diff --git a/bow-ui/src/main/java/org/chorem/bow/action/login/RegisterAction.java b/bow-ui/src/main/java/org/chorem/bow/action/login/RegisterAction.java index c58f74f..6763f53 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/login/RegisterAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/login/RegisterAction.java @@ -100,7 +100,7 @@ public class RegisterAction extends BowBaseAction { //If the user doesn't already exist if (result) { //The email address is already used by someone - addFieldError("email", _("bow.register.emailAldyUsed")); + addFieldError("email", t("bow.register.emailAldyUsed")); } return result; } @@ -115,7 +115,7 @@ public class RegisterAction extends BowBaseAction { email = email.trim(); if (StringUtils.isNotBlank(password)) { if (!password.equals(repeatPassword)) { - addActionError(_("bow.register.pwdDontMatch")); + addActionError(t("bow.register.pwdDontMatch")); } else { String md5 = StringUtil.encodeMD5(password); @@ -131,20 +131,20 @@ public class RegisterAction extends BowBaseAction { //If there was an error when storing the user if (login == null) { - addFieldError("email", _("bow.register.invalidLogin")); + addFieldError("email", t("bow.register.invalidLogin")); } else { getBowSession().setUser(login); try { String mailContent; mailContent = - _("bow.register.mailHi") + ",\n\n" + - _("bow.register.mailPwd") + ": " + password + "\n\n" + - _("bow.register.mailEmail") + ": " + email + "\n\n"; - BowMail.sendMail(email, _("bow.register.mailSubject"), mailContent); + t("bow.register.mailHi") + ",\n\n" + + t("bow.register.mailPwd") + ": " + password + "\n\n" + + t("bow.register.mailEmail") + ": " + email + "\n\n"; + BowMail.sendMail(email, t("bow.register.mailSubject"), mailContent); } catch (AddressException eee) { //If the email address is invalid - addActionError(_("bow.mail.badFormat")); + addActionError(t("bow.mail.badFormat")); log.error(String.format("Can't send message email to '%s'", email), eee); } catch (MessagingException eee) { @@ -159,7 +159,7 @@ public class RegisterAction extends BowBaseAction { } } } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); } return result; diff --git a/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchResultAction.java b/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchResultAction.java index 1e8859d..e12a80a 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchResultAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchResultAction.java @@ -27,7 +27,7 @@ import org.chorem.bow.BowConfig; import javax.servlet.http.HttpServletResponse; import org.chorem.bow.BowSearchPrefix; -import org.nuiton.util.ApplicationConfig; +import org.nuiton.config.ApplicationConfig; /** * Traite toutes les demandes faite via l'opensearch diff --git a/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchSuggestionAction.java b/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchSuggestionAction.java index 296603d..4a0140f 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchSuggestionAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/opensearch/OpenSearchSuggestionAction.java @@ -40,7 +40,7 @@ import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.apache.struts2.ServletActionContext; import org.chorem.bow.BowSearchPrefix; -import org.nuiton.util.ApplicationConfig; +import org.nuiton.config.ApplicationConfig; /** * Retourne les suggestions pour l'opensearch en fonction de ce qui a ete deja diff --git a/bow-ui/src/main/java/org/chorem/bow/action/opensearch/SuggestionAction.java b/bow-ui/src/main/java/org/chorem/bow/action/opensearch/SuggestionAction.java index e1206ea..dc87cc5 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/opensearch/SuggestionAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/opensearch/SuggestionAction.java @@ -146,7 +146,7 @@ public class SuggestionAction extends BowBaseAction { log.trace(String.format("'%s' startsWith '%s' ? ", completion, lastTag)); } if (completion.startsWith(lastTag)) { -// String description = _("bow.opensearch.result", t.getCount()); +// String description = t("bow.opensearch.result", t.getCount()); // String tags = q + StringUtils.removeStart(completion, lastTag); // String queryUrl = BowConfig.getBowUrl() + BowUtils.redirectTo(tags, null); diff --git a/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java b/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java index 0788042..b147989 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java @@ -101,7 +101,7 @@ public class AdminTagAction extends PreferenceBaseAction { proxy.store(toStore); } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); } finally { // on recharge les data apres l'action pour l'affichage diff --git a/bow-ui/src/main/java/org/chorem/bow/action/preference/DeleteImportAction.java b/bow-ui/src/main/java/org/chorem/bow/action/preference/DeleteImportAction.java index 2be06ef..2b7cc01 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/preference/DeleteImportAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/preference/DeleteImportAction.java @@ -76,11 +76,11 @@ public class DeleteImportAction extends PreferenceBaseAction { proxy.delete(bookmarks); - addActionMessage(_("bow.bookmark.import.delete.successful")); + addActionMessage(t("bow.bookmark.import.delete.successful")); } } catch (Exception e) { result = ERROR; - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(e.getMessage(), e); } finally { // on recharge les data apres l'action pour l'affichage diff --git a/bow-ui/src/main/java/org/chorem/bow/action/preference/GenerateTokenAction.java b/bow-ui/src/main/java/org/chorem/bow/action/preference/GenerateTokenAction.java index 54ebe94..0376dee 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/preference/GenerateTokenAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/preference/GenerateTokenAction.java @@ -52,9 +52,9 @@ public class GenerateTokenAction extends PreferenceBaseAction { String temporaryToken = BowUtils.generateToken(); getBowSession().setTemporaryToken(temporaryToken); - addActionMessage(_("bow.token.generate.successful")); + addActionMessage(t("bow.token.generate.successful")); } catch (Exception eee) { - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error("Can't regenerate token", eee); } finally { // on recharge les data apres l'action pour l'affichage diff --git a/bow-ui/src/main/java/org/chorem/bow/action/preference/ImportBookmarksAction.java b/bow-ui/src/main/java/org/chorem/bow/action/preference/ImportBookmarksAction.java index bd47d3e..88a982e 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/preference/ImportBookmarksAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/preference/ImportBookmarksAction.java @@ -228,25 +228,25 @@ public class ImportBookmarksAction extends PreferenceBaseAction { new HashSet<String>()); proxy.store(bookmarks); - addActionMessage(_("bow.bookmark.import.successful")); + addActionMessage(t("bow.bookmark.import.successful")); } catch (ParserException eee) { result = ERROR; log.error(String.format("Can't parse imported file '%s'", getUpfileFileName()), eee); - addActionError(_("bow.bookmark.badFileFormat")); + addActionError(t("bow.bookmark.badFileFormat")); } catch (IOException eee) { result = ERROR; log.error(String.format("Can't read imported file '%s'", getUpfileFileName()), eee); - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); } } else { - addActionError(_("bow.bookmark.badFileFormat")); + addActionError(t("bow.bookmark.badFileFormat")); result = ERROR; } } catch (Exception eee) { result = ERROR; - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); } finally { // on recharge les data apres l'action pour l'affichage diff --git a/bow-ui/src/main/java/org/chorem/bow/action/preference/PreferenceBaseAction.java b/bow-ui/src/main/java/org/chorem/bow/action/preference/PreferenceBaseAction.java index 841aa90..4b09774 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/preference/PreferenceBaseAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/preference/PreferenceBaseAction.java @@ -402,7 +402,7 @@ public class PreferenceBaseAction extends BowBaseAction { load(); } catch (Exception eee) { result = ERROR; - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error("Can't load data preference", eee); } return result; diff --git a/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateSiteAction.java b/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateSiteAction.java index 1b01531..43f8fea 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateSiteAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateSiteAction.java @@ -84,7 +84,7 @@ public class UpdateSiteAction extends PreferenceBaseAction { getBowSession().setUser(preference); } catch (Exception eee) { result = ERROR; - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error("Can't change site preference", eee); } finally { // on recharge les data apres l'action pour l'affichage @@ -110,7 +110,7 @@ public class UpdateSiteAction extends PreferenceBaseAction { searchPrefix = null; } catch (Exception eee) { result = ERROR; - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error("Can't change site preference", eee); } finally { // on recharge les data apres l'action pour l'affichage @@ -133,7 +133,7 @@ public class UpdateSiteAction extends PreferenceBaseAction { } } catch (Exception eee) { result = ERROR; - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error("Can't change site preference", eee); } finally { // on recharge les data apres l'action pour l'affichage diff --git a/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateUserAction.java b/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateUserAction.java index 9cdc40c..e63d18f 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateUserAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/preference/UpdateUserAction.java @@ -80,8 +80,8 @@ public class UpdateUserAction extends PreferenceBaseAction { // TODO poussin 20110818 addFieldError don't work (no message on web page :( // add addActionError to prevent addFieldError that don't work - addFieldError("email", _("bow.preferences.emailAldyExists")); - addActionError(_("bow.preferences.emailAldyExists")); + addFieldError("email", t("bow.preferences.emailAldyExists")); + addActionError(t("bow.preferences.emailAldyExists")); result = ERROR; } } @@ -97,8 +97,8 @@ public class UpdateUserAction extends PreferenceBaseAction { } else { // TODO poussin 20110818 addFieldError don't work (no message on web page :( // add addActionError to prevent addFieldError that don't work - addFieldError("currentPassword", _("bow.preferences.badCurrentPassword")); - addActionError(_("bow.preferences.badCurrentPassword")); + addFieldError("currentPassword", t("bow.preferences.badCurrentPassword")); + addActionError(t("bow.preferences.badCurrentPassword")); result = ERROR; } } @@ -106,11 +106,11 @@ public class UpdateUserAction extends PreferenceBaseAction { if (SUCCESS.equals(result)) { user = proxy.store(user); getBowSession().setUser(user); - addActionMessage(_("bow.preferences.update.successful")); + addActionMessage(t("bow.preferences.update.successful")); } } catch (Exception eee) { result = ERROR; - addActionError(_("bow.error.internal")); + addActionError(t("bow.error.internal")); log.error("Can't change site preference", eee); } finally { // on recharge les data apres l'action pour l'affichage diff --git a/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties b/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties index da96650..cc4a151 100644 --- a/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties +++ b/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties @@ -1,5 +1,5 @@ bow.action.locale.english=English -bow.action.locale.french=Fran\u00E7ais +bow.action.locale.french=Français bow.admin.dataMigration.success=Data migration successful bow.admin.dataMigration04to05=Migrate all data from 0.4 to 0.5 bow.admin.dataMigration05to06=Migrate all data from 1.1 to 1.2 @@ -74,7 +74,9 @@ bow.mail.badFormat=Your email format is incorrect and therefore the email hasn't bow.mail.sendError=An error occurred while sending email bow.opensearch.result=%s results bow.permanent.link.search= +bow.permanent.link.searchDescription= bow.permanent.link.suggestion= +bow.permanent.link.suggestionDescription= bow.preference.opensearch.prefix.separator=OpenSeach prefix separator bow.preferences.badCurrentPassword=Your current password is incorrect bow.preferences.bookmarksHomePage=Number of bookmarks displayed on the home page @@ -167,7 +169,9 @@ bow.search.results.deleted=Search results deleted successfully bow.search.submit=Search bow.search.title=Search bow.temporary.link.search= +bow.temporary.link.searchDescription= bow.temporary.link.suggestion= +bow.temporary.link.suggestionDescription= bow.token.generate.successful=The token has been regenerated successfully popup.addurl.alias.private=Private alias popup.addurl.alias.public=Public alias diff --git a/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties b/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties index 465cc3c..9bb8918 100644 --- a/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties +++ b/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties @@ -1,28 +1,28 @@ bow.action.locale.english=English -bow.action.locale.french=Fran\u00E7ais -bow.admin.dataMigration.success=Les donn\u00E9es ont \u00E9t\u00E9 migr\u00E9es avec succ\u00E8s -bow.admin.dataMigration04to05=Migrer toutes les donn\u00E9es de la version 0.4 \u00E0 0.5 -bow.admin.dataMigration05to06=Migrer toutes les donn\u00E9es de la version 1.1 \u00E0 1.2 +bow.action.locale.french=Français +bow.admin.dataMigration.success=Les données ont été migrées avec succès +bow.admin.dataMigration04to05=Migrer toutes les données de la version 0.4 à 0.5 +bow.admin.dataMigration05to06=Migrer toutes les données de la version 1.1 à 1.2 bow.admin.dataMigration11to12= -bow.admin.dataReindexation=R\u00E9indexation des donn\u00E9es -bow.admin.forbidden=Vous n'\u00EAtes pas administrateur \! +bow.admin.dataReindexation=Réindexation des données +bow.admin.forbidden=Vous n'êtes pas administrateur \! bow.admin.forceMigration= 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 (et migration si n\u00E9cessaire) -bow.alias.already.exists=L''alias {0} existe d\u00E9j\u00E0 -bow.alias.bookmarkId.unknown=Il n''y a pas de marque-page correspondant \u00E0 l''identifiant {0} -bow.bookmark.add.successful=Marque-page ajout\u00E9 avec succ\u00E8s -bow.bookmark.badFileFormat=Mauvais format de fichier de favoris \: import impossible (le format de type Netscape n'est pas support\u00E9) +bow.admin.reIndexationDone=Les données ont bien été réindexées (et migration si nécessaire) +bow.alias.already.exists=L''alias {0} existe déjà +bow.alias.bookmarkId.unknown=Il n''y a pas de marque-page correspondant à l''identifiant {0} +bow.bookmark.add.successful=Marque-page ajouté avec succès +bow.bookmark.badFileFormat=Mauvais format de fichier de favoris \: import impossible (le format de type Netscape n'est pas supporté) bow.bookmark.description=Description bow.bookmark.favicon.updated.successful= -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.import.delete.successful=Les marque-pages importés ont été supprimés avec succès +bow.bookmark.import.successful=Les marque-pages ont été importés avec succès +bow.bookmark.remove.successful=Le marque-page a été supprimé avec succès bow.bookmark.screenshot.updated.successful= -bow.bookmark.tag.deleted=Le tag a \u00E9t\u00E9 supprim\u00E9 avec succ\u00E8s +bow.bookmark.tag.deleted=Le tag a été supprimé avec succès bow.bookmark.tags=Tags -bow.bookmark.update.successful=Le marque-page a \u00E9t\u00E9 mis \u00E0 jour avec succ\u00E8s +bow.bookmark.update.successful=Le marque-page a été mis à jour avec succès bow.bookmarks.noBookmarks=Pas de marque-page bow.config.alias.url.description=Url public du serveur d'alias bow.config.application.version.description=Version de l'application @@ -37,16 +37,16 @@ bow.config.bow.screenshot.url.description= bow.config.bow.smtpServer.description=Adresse du serveur de mail bow.config.bow.url.description=Url public du serveur bow bow.config.configFileName.description=Fichier de configuration de bow -bow.config.data.dir.description=R\u00E9pertoire de stockage des donn\u00E9es +bow.config.data.dir.description=Répertoire de stockage des données bow.config.opensearch.add.prefix.description= bow.config.opensearch.alias.prefix.description=Prefix de redirection via l'alias -bow.config.opensearch.default.action.description=action par d\u00E9faut -bow.config.opensearch.default.prefix.description=Prefix par d\u00E9faut +bow.config.opensearch.default.action.description=action par défaut +bow.config.opensearch.default.prefix.description=Prefix par défaut bow.config.opensearch.fulltext.search.prefix.description=Fulltext -bow.config.opensearch.prefix.separator.description=S\u00E9parateur de pr\u00E9fix -bow.config.opensearch.tag.search.prefix.description=Pr\u00E9fix de recherche par tag +bow.config.opensearch.prefix.separator.description=Séparateur de préfix +bow.config.opensearch.tag.search.prefix.description=Préfix de recherche par tag bow.config.opensearch.web.search.prefix.description=prefix de recherche sur le web -bow.config.search.engine.description=Url du moteur de recherche Web \u00E0 utiliser +bow.config.search.engine.description=Url du moteur de recherche Web à utiliser bow.config.sprefix.search.tag.description= bow.config.sprefix.suggestion.tag.description= bow.error.internal=Une erreur interne est survenue, merci de contacter un administrateur si cette erreur persiste @@ -55,12 +55,12 @@ bow.footer.license=Licence AGPL bow.footer.userSupport=Support utilisateur bow.forgotPassword.emailDoesntExist=Cette adresse email n''existe pas bow.forgotpwd.submit=Envoyer -bow.forgotpwd.title=Vous avez oubli\u00E9 votre mot de passe ? -bow.home.latestBookmarks=Les derniers marque-pages ajout\u00E9s -bow.home.mostUsedBookmarks=Les marque-pages les plus utilis\u00E9s +bow.forgotpwd.title=Vous avez oublié votre mot de passe ? +bow.home.latestBookmarks=Les derniers marque-pages ajoutés +bow.home.mostUsedBookmarks=Les marque-pages les plus utilisés bow.home.title=Accueil -bow.login.admin.failback=Probl\u00E8me d'authentification, vous devriez reconstruire l'index via la page d'admin -bow.login.authenticationFailure=Soit votre adresse email n''existe pas, soit votre mot de passe est eronn\u00E9 +bow.login.admin.failback=Problème d'authentification, vous devriez reconstruire l'index via la page d'admin +bow.login.authenticationFailure=Soit votre adresse email n''existe pas, soit votre mot de passe est eronné bow.login.email=Email bow.login.email.required=Veuillez entrer votre adresse email bow.login.email.wrongformat=Votre adresse email est invalide @@ -70,72 +70,74 @@ bow.login.repeatPassword=Confirmation bow.login.repeatPassword.required=Veuillez retaper votre mot de passe bow.login.submit=Connexion bow.login.title=Connexion -bow.mail.badFormat=Votre adresse email est mal form\u00E9e \: aucun mail n''a pu \u00EAtre envoy\u00E9 +bow.mail.badFormat=Votre adresse email est mal formée \: aucun mail n''a pu être envoyé bow.mail.sendError=Une erreur s''est produite lors de l''envoi du mail -bow.opensearch.result=%s r\u00E9sultats +bow.opensearch.result=%s résultats bow.permanent.link.search= +bow.permanent.link.searchDescription= bow.permanent.link.suggestion= -bow.preference.opensearch.prefix.separator=Separateur de pr\u00E9fix +bow.permanent.link.suggestionDescription= +bow.preference.opensearch.prefix.separator=Separateur de préfix bow.preferences.badCurrentPassword=Votre mot de passe actuel est incorrect -bow.preferences.bookmarksHomePage=Nombre de marque-pages affich\u00E9s +bow.preferences.bookmarksHomePage=Nombre de marque-pages affichés bow.preferences.colors=Couleur du site bow.preferences.confirmNewPassword=Confirmez votre mot de passe bow.preferences.currentPassword=Mot de passe actuel -bow.preferences.emailAldyExists=Cette addresse email est d\u00E9j\u00E0 utilis\u00E9e par un autre compte +bow.preferences.emailAldyExists=Cette addresse email est déjà utilisée par un autre compte bow.preferences.export.bookmarks=Exporter les marque-pages bow.preferences.favicon= bow.preferences.import.bookmarks=Importer des marques-pages bow.preferences.import.submit=Importer bow.preferences.importExport=Import / Export -bow.preferences.importedBookmarks=Marque-pages import\u00E9s +bow.preferences.importedBookmarks=Marque-pages importés bow.preferences.labels=Gestion des labels bow.preferences.labels.delete.submit=Supprimer bow.preferences.labels.name.field=Nouveau nom bow.preferences.labels.rename.submit=Renomer bow.preferences.newPassword=Nouveau mot de passe -bow.preferences.noImportedBookmarks=Aucun marque-page import\u00E9 +bow.preferences.noImportedBookmarks=Aucun marque-page importé bow.preferences.opensearch.alias.prefix=Alias -bow.preferences.opensearch.default.action=action par d\u00E9faut -bow.preferences.opensearch.default.prefix=Prefix par d\u00E9faut +bow.preferences.opensearch.default.action=action par défaut +bow.preferences.opensearch.default.prefix=Prefix par défaut bow.preferences.opensearch.fulltext.search.prefix=Recherche Fulltext -bow.preferences.opensearch.prefix=Pr\u00E9fix -bow.preferences.opensearch.prefix.separator=S\u00E9parateur de pr\u00E9fix +bow.preferences.opensearch.prefix=Préfix +bow.preferences.opensearch.prefix.separator=Séparateur de préfix bow.preferences.opensearch.tag.search.prefix=Recherche par tag bow.preferences.opensearch.value=Valeur bow.preferences.opensearch.web.search.prefix=Recherche Web -bow.preferences.regenPermToken=Reg\u00E9n\u00E9rer le token permanent +bow.preferences.regenPermToken=Regénérer le token permanent bow.preferences.screenshot= -bow.preferences.searchEngineUrlResults=Search Engine URL Results ('{'searchTerms'}' sera remplac\u00E9 par votre recherche) +bow.preferences.searchEngineUrlResults=Search Engine URL Results ('{'searchTerms'}' sera remplacé par votre recherche) bow.preferences.searchEngineUrlSuggestions=Search Engine URL Suggestions -bow.preferences.siteLook=Pr\u00E9f\u00E9rences du site +bow.preferences.siteLook=Préférences du site bow.preferences.submit=Changer bow.preferences.tagsManagement=Edition des tags -bow.preferences.tagsNb=Nombre de tags affich\u00E9s sur le nuage de tags -bow.preferences.title=Pr\u00E9f\u00E9rences -bow.preferences.update.successful=Vos pr\u00E9f\u00E9rences ont \u00E9t\u00E9 mises \u00E0 jour avec succ\u00E8s +bow.preferences.tagsNb=Nombre de tags affichés sur le nuage de tags +bow.preferences.title=Préférences +bow.preferences.update.successful=Vos préférences ont été mises à jour avec succès bow.preferences.userInfo=Informations utilisateur -bow.register.emailAldyUsed=Cette adresse email est d\u00E9j\u00E0 utilis\u00E9e -bow.register.invalidLogin=Une erreur s''est produite pendant l''enregistrement de vos informations, merci d''essayer \u00E0 nouveau +bow.register.emailAldyUsed=Cette adresse email est déjà utilisée +bow.register.invalidLogin=Une erreur s''est produite pendant l''enregistrement de vos informations, merci d''essayer à nouveau bow.register.mailEmail=Votre email bow.register.mailHi=Bonjour bow.register.mailPwd=Votre mot de passe bow.register.mailSubject=[bow] Vos informations utilisateur -bow.register.pwdDontMatch=Les mots de passe sont diff\u00E9rents +bow.register.pwdDontMatch=Les mots de passe sont différents bow.register.submit=S''enregistrer bow.register.title=S''enregistrer bow.requiredstring=${getText(fieldKey)} est obligatoire -bow.rightMenu.addUrl.link=Ajouter une entr\u00E9e +bow.rightMenu.addUrl.link=Ajouter une entrée bow.rightMenu.admin=Admin bow.rightMenu.bookmark.addModify=Ajouter / Modifier bow.rightMenu.bookmark.alias=ALIAS bow.rightMenu.bookmark.link=URL bow.rightMenu.bookmark.name=DESC bow.rightMenu.bookmark.permanentLink=Ajouter un bookmark (permanent) -bow.rightMenu.bookmark.permanentLinkDescription=Ajoutez ce lien \u00E0 vos favoris pour pouvoir bookmarker vos liens dans le futur. Ce lien est toujours disponible \! +bow.rightMenu.bookmark.permanentLinkDescription=Ajoutez ce lien à vos favoris pour pouvoir bookmarker vos liens dans le futur. Ce lien est toujours disponible \! bow.rightMenu.bookmark.submit=Sauvegarder bow.rightMenu.bookmark.tags=TAGS bow.rightMenu.bookmark.temporaryLink=Ajouter un bookmark (session) -bow.rightMenu.bookmark.temporaryLinkDescription=Ajoutez ce lien \u00E0 vos favoris pour pouvoir bookmarker vos liens dans le futur. Ce lien est seulement disponible tant que vous \u00EAtes connect\u00E9 sur le site \! +bow.rightMenu.bookmark.temporaryLinkDescription=Ajoutez ce lien à vos favoris pour pouvoir bookmarker vos liens dans le futur. Ce lien est seulement disponible tant que vous êtes connecté sur le site \! bow.rightMenu.chromiumExtension=Extension pour chromium bow.rightMenu.extensions=Extensions bow.rightMenu.externSearchEngine=Web @@ -144,7 +146,7 @@ bow.rightMenu.fullTextSearch=full text bow.rightMenu.help=Aide bow.rightMenu.import.submit=Importer bow.rightMenu.importBookmarks=Importer des marque-pages -bow.rightMenu.logout=D\u00E9connexion +bow.rightMenu.logout=Déconnexion bow.rightMenu.search=Recherche bow.rightMenu.search.tags=par tags bow.rightMenu.token.permanent=Token permanent @@ -156,20 +158,22 @@ bow.search.descclick=Nb clics desc. bow.search.descdate=Date desc. bow.search.descname=Nom desc. bow.search.found=Total\: -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.search.order.ascClick=Les résultats de votre recherche ont été triés par nombre de clics ascendants +bow.search.order.ascDate=Les résultats de votre recherche ont été triés par date ascendante +bow.search.order.ascName=Les résultats de votre recherche ont été triés par nom ascendant +bow.search.order.descClick=Les résultats de votre recherche ont été triés par nombre de clics descendants +bow.search.order.descDate=Les résultats de votre recherche ont été triés par date descendante +bow.search.order.descName=Les résultats de votre recherche ont été triés par nom descendant 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.results.deleted=Les résultats de la recherche ont été supprimés avec succès bow.search.submit=Rechercher bow.search.title=Recherche bow.temporary.link.search= +bow.temporary.link.searchDescription= bow.temporary.link.suggestion= -bow.token.generate.successful=Le token a \u00E9t\u00E9 reg\u00E9n\u00E9r\u00E9 avec succ\u00E8s -popup.addurl.alias.private=Alias priv\u00E9 +bow.temporary.link.suggestionDescription= +bow.token.generate.successful=Le token a été regénéré avec succès +popup.addurl.alias.private=Alias privé popup.addurl.alias.public=Alias public popup.addurl.link=Url popup.addurl.name=Description diff --git a/pom.xml b/pom.xml index 09b5bbb..ec0d596 100644 --- a/pom.xml +++ b/pom.xml @@ -112,11 +112,12 @@ <projectId>bow</projectId> - <eugenePluginVersion>2.4.2</eugenePluginVersion> - <nuitonUtilsVersion>2.6.9</nuitonUtilsVersion> - <nuitonWebVersion>1.3</nuitonWebVersion> - <nuitonI18nVersion>2.3.1</nuitonI18nVersion> - <wikittyVersion>3.10</wikittyVersion> + <eugenePluginVersion>2.7.4</eugenePluginVersion> + <nuitonUtilsVersion>3.0-rc-8</nuitonUtilsVersion> + <nuitonConfigVersion>3.0-rc-2</nuitonConfigVersion> + <nuitonWebVersion>1.17</nuitonWebVersion> + <nuitonI18nVersion>3.3</nuitonI18nVersion> + <wikittyVersion>3.11</wikittyVersion> <slf4jVersion>1.6.1</slf4jVersion> <struts2Version>2.3.16.3</struts2Version> <struts2jqueryVersion>3.7.1</struts2jqueryVersion> @@ -124,7 +125,7 @@ <javaxMailVersion>1.4.3</javaxMailVersion> <servletApiVersion>2.5</servletApiVersion> <jspApiVersion>2.0</jspApiVersion> - <h2Version>1.2.134</h2Version> + <h2Version>1.4.187</h2Version> <crxMavenPluginVersion>1.1.0</crxMavenPluginVersion> <jstlVersion>1.2</jstlVersion> @@ -208,6 +209,12 @@ </dependency> <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-config</artifactId> + <version>${nuitonConfigVersion}</version> + </dependency> + + <dependency> <groupId>org.nuiton.web</groupId> <artifactId>nuiton-struts2</artifactId> <version>${nuitonWebVersion}</version> @@ -427,13 +434,13 @@ <plugin> <groupId>org.nuiton.eugene</groupId> - <artifactId>maven-eugene-plugin</artifactId> + <artifactId>eugene-maven-plugin</artifactId> <version>${eugenePluginVersion}</version> </plugin> <plugin> <groupId>org.nuiton.i18n</groupId> - <artifactId>maven-i18n-plugin</artifactId> + <artifactId>i18n-maven-plugin</artifactId> <version>${nuitonI18nVersion}</version> </plugin> -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository bow. See http://git.chorem.org/bow.git commit 2ed827771826047996d6003f1a7fdcda3a2c86ec Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Fri Jul 17 18:30:14 2015 +0200 fixes #1262: add support to track bookmark add throw atom feed --- .../java/org/chorem/bow/action/AtomAction.java | 117 +++++++++++++++++++ bow-ui/src/main/resources/struts.xml | 8 +- bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp | 129 +++++++++++++++++++++ 3 files changed, 253 insertions(+), 1 deletion(-) diff --git a/bow-ui/src/main/java/org/chorem/bow/action/AtomAction.java b/bow-ui/src/main/java/org/chorem/bow/action/AtomAction.java new file mode 100644 index 0000000..c262307 --- /dev/null +++ b/bow-ui/src/main/java/org/chorem/bow/action/AtomAction.java @@ -0,0 +1,117 @@ +/* + * #%L + * BOW UI + * %% + * Copyright (C) 2010 - 2015 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.bow.action; + +import java.util.List; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.bow.BookmarkUtils; +import org.chorem.bow.BowBookmark; +import org.chorem.bow.BowProxy; +import org.chorem.bow.BowSearchResult; +import org.chorem.bow.BowSession; +import org.chorem.bow.BowUser; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryResult; + +/** + * Handles RSS flux demande + * - tagLine + * - fullTextLine + * - count: number of bookmark to retrieve + * + * @author poussin + * @version $Revision$ + * <p/> + * Last update: $Date$ + * by : $Author$ + */ +public class AtomAction extends BowBaseAction { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + private static final Log log = LogFactory.getLog(AtomAction.class); + + private static final long serialVersionUID = 1L; + + protected int count = 15; + + protected List<BowBookmark> bookmarks; + + protected String date; + + protected String redirectTo = "/"; + + public String getRedirectTo() { + return redirectTo; + } + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public List<BowBookmark> getBookmarks() { + return bookmarks; + } + + public String getDate() { + return date; + } + + @Override + public String execute() throws Exception { + if (log.isDebugEnabled()) { + log.debug(String.format("Rss for tags='%' fulltext='%s' count='%s'" + tagLine, fullTextLine, count)); + } + String result = SUCCESS; + try { + + BowSession session = getBowSession(); + + BowUser user = session.getUser(); + BowProxy proxy = session.getProxy(); + + WikittyQuery criteria = BookmarkUtils.getBookmarkListCriteriaByUser( + user, tagLine, fullTextLine, "descDate", 0); + criteria.setLimit(count); + WikittyQueryResult<String> bookmarksId = proxy.findAllByQuery(criteria); + bookmarks = proxy.restore(BowBookmark.class, bookmarksId.getAll(), "WikittyAuthorisation.owner"); + date = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.format(System.currentTimeMillis()); + + if (log.isDebugEnabled()) { + log.debug(String.format("Rss found='%s'" + bookmarks.size())); + } + + } catch (Exception eee) { + addActionError(t("bow.error.internal")); + log.error(eee.getMessage(), eee); + result = ERROR; + } + return result; + } + +} diff --git a/bow-ui/src/main/resources/struts.xml b/bow-ui/src/main/resources/struts.xml index 862542c..39718af 100644 --- a/bow-ui/src/main/resources/struts.xml +++ b/bow-ui/src/main/resources/struts.xml @@ -109,7 +109,13 @@ </action> </package> - <package name="login" extends="loginArea"> + <package name="atom" extends="publicArea"> + <action name="atom" class="org.chorem.bow.action.AtomAction"> + <result>/WEB-INF/jsp/atom.jsp</result> + </action> + </package> + + <package name="login" extends="loginArea"> <action name="register_*" method="{1}" class="org.chorem.bow.action.login.RegisterAction"> <result name="input">/WEB-INF/jsp/register.jsp</result> <result type="redirectAction">home</result> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp new file mode 100644 index 0000000..ccc8f97 --- /dev/null +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="utf-8"?> +<%-- + #%L + BOW UI + %% + Copyright (C) 2010 - 2015 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> +<%@page contentType="application/atom+xml; charset=UTF-8" pageEncoding="UTF-8"%> +<%@taglib prefix="s" uri="/struts-tags" %> +<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> +<%@taglib uri="/WEB-INF/bowutils" prefix="u" %> +<feed xmlns="http://www.w3.org/2005/Atom"> + <s:set name="bowDomain" value="config.bowUrl"/> + + <title>Bow</title> + <subtitle>tag='${tagLine}' search='${fullTextLine}'</subtitle> + + <s:url var="bowUrl" action="home" escapeAmp="false"> + <s:param name="token" value="%{bowSession.permanentToken}" /> + <s:param name="tagLine" value="%{tagLine}" /> + <s:param name="fullTextLine" value="%{fullTextLine}" /> + </s:url> + <s:url var="atomUrl" action="atom" escapeAmp="false"> + <s:param name="token" value="%{bowSession.permanentToken}" /> + <s:param name="tagLine" value="%{tagLine}" /> + <s:param name="fullTextLine" value="%{fullTextLine}" /> + <s:param name="count" value="%{count}" /> + </s:url> + <link rel="alternate" type="text/html" href="${bowDomain}${bowUrl}"/> + <link rel="self" type="application/atom+xml" href="${bowDomain}${atomUrl}"/> + + <updated>${date}</updated> + <author> + <name>${bowSession.user.login}</name> + </author> + <id>${bowDomain}${bowUrl}</id> + <s:url var="favicon" value="/img/favicon.png" /> + <icon>${bowDomain}${favicon}</icon> + + <s:iterator value="bookmarks" var="bookmark"> + <s:set name="bookmark" value="bookmark"/> + <entry> + <title><s:property value="%{#bookmark.link}" /></title> + <s:url var="bookmarkUrl" action="home" escapeAmp="false"> + <s:param name="token" value="%{bowSession.permanentToken}" /> + <s:param name="fullTextLine" value="%{#bookmark.link}" /> + </s:url> + <link rel="alternate" type="text/html" href="${bowDomain}${bookmarkUrl}"/> + <link href="${bookmark.link}"/> + <id>${bowDomain}${bookmark.wikittyId}</id> + <updated><fmt:formatDate value="${bookmark.creationDate}" pattern="yyyy-MM-dd'T'HH:mm:ssZ" /></updated> + <author> + <name><s:property value="%{#bookmark.getOwner(false).login}" /></name> + </author> + <content type="xhtml"> + <div xmlns="http://www.w3.org/1999/xhtml"> + <span class="left"> + <s:set var="favicon" value="#bookmark.favicon"/> + <c:if test="${fn:length(favicon) > 0}"> + <img class="favicon" src="data:image/png;base64,${u:base64(favicon)}"/> + </c:if> + + <span class="left date"><fmt:formatDate value="${bookmark.creationDate}" pattern="yyyy-MM-dd" /></updated></span> + + <c:if test="${not empty bookmark.privateAlias}"> + <span class="left"> + <s:a cssClass="alias" href="%{config.aliasUrl + #bookmark.wikittyId}.action" + title="%{#bookmark.link}" target="_blank"> + alias: ${bookmark.privateAlias} + </s:a> + </span> + </c:if> + <c:if test="${not empty bookmark.publicAlias}"> + <span class="left"> + <s:a cssClass="alias" href="%{config.aliasUrl + #bookmark.publicAlias}.action" + title="%{#bookmark.link}" target="_blank"> + alias public: ${bookmark.publicAlias} + </s:a> + </span> + </c:if> + </span> + + <div class="description"> + <p> + <s:a href="%{config.aliasUrl + #bookmark.wikittyId}.action">${bookmark.link}</s:a> + </p> + <h3><s:text name="bow.bookmark.description" /> :</h3> + <p> + ${bookmark.description} + </p> + <p class="tags"> + <strong><s:text name="bow.bookmark.tags" /> :</strong> + <s:iterator value="#bookmark.labels" var="tag"> + <s:url var="search" action="home" escapeAmp="false"> + <s:param name="addTag" value="%{#tag}"/> + <s:param name="tagLine" value="%{tagLine}"/> + <s:param name="fullTextLine" value="%{fullTextLine}"/> + <s:param name="order" value="%{order}"/> + <%-- on ne met pas 'first', il faut repartir de 0 --%> + </s:url> + <a href="${bowDomain}${search}" cssClass="tag"><s:property value="%{#tag}"/></a> + </s:iterator> + </p> + </div> + </div> + </content> + <s:iterator value="#bookmark.labels" var="tag"> + <category term="${tag}" /> + </s:iterator> + </entry> + </s:iterator> + +</feed> \ No newline at end of file -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm