r240 - trunk/bow-ui/src/main/java/org/chorem/bow/action
Author: bpoussin Date: 2011-04-16 18:36:48 +0200 (Sat, 16 Apr 2011) New Revision: 240 Url: http://chorem.org/repositories/revision/bow/240 Log: Evolution #278: Twice the same bookmark Il reste a bien presenter la description (conversion \n -> <br/>) Modified: trunk/bow-ui/src/main/java/org/chorem/bow/action/AddUrlAction.java 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-04-16 16:36:05 UTC (rev 239) +++ trunk/bow-ui/src/main/java/org/chorem/bow/action/AddUrlAction.java 2011-04-16 16:36:48 UTC (rev 240) @@ -23,6 +23,8 @@ */ package org.chorem.bow.action; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.time.DateFormatUtils; import org.chorem.bow.BowBookmark; import org.chorem.bow.BookmarkUtils; import org.chorem.bow.BowUtils; @@ -41,6 +43,9 @@ public class AddUrlAction extends BowBaseAction { private static final long serialVersionUID = 3389170166034184139L; + + final static private String DATE_FORMAT = "yyyy/MM/dd"; + protected String link; protected String name; protected String alias; @@ -176,7 +181,41 @@ bookmark = BookmarkUtils.createBookmark(link, nameAndTags, user); } } - if (bookmark != null && !bookmark.getDescription().isEmpty() && !bookmark.getBowUser().isEmpty()) { + // si on a reussi a creer le bookmark + if (bookmark != null && !bookmark.getDescription().isEmpty() + && !bookmark.getBowUser().isEmpty()) { + String userId = user.getWikittyId(); + + // looking for already bookmark with same url, to fusion them + String link = bookmark.getLink(); + Criteria criteria = Search.query() + .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_LINK, link) + .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_BOWUSER, userId) + .criteria(); + BowBookmark oldBookmark = + proxy.findByCriteria(BowBookmark.class, criteria); + if(oldBookmark != null) { + // fusionne les descriptions et les tags + // par contre on prend le dernier alias prive choisi par + // l'utilisateur s'il y en a un + String description = oldBookmark.getDescription(); + if (!StringUtils.isEmpty(bookmark.getDescription())) { + description += "\n"; + description += DateFormatUtils.format( + bookmark.getCreationDate(), DATE_FORMAT) + ": "; + description += bookmark.getDescription(); + } + + oldBookmark.setDescription(description); + oldBookmark.addAllLabels(bookmark.getLabels()); + String privateAlias = bookmark.getPrivateAlias(); + if (!StringUtils.isEmpty(privateAlias)) { + oldBookmark.setPrivateAlias(privateAlias); + } + + bookmark = oldBookmark; + } + proxy.store(bookmark); //Stores the bookmark if everything is ok addActionMessage(getText(n_("bow.bookmark.add.successful"))); if (log.isDebugEnabled()) {
participants (1)
-
bpoussin@users.chorem.org