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 28e6673b7cf3a7f5d303d4012f0d650407a8fd1d Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Sat Jul 18 00:15:07 2015 +0200 improve redirect after add (reditect to editing if no information) use new funtionnality (filter on id) to present bookmark after editing --- .../bow/action/bookmark/AddOrUpdateAction.java | 150 ++++----------------- 1 file changed, 26 insertions(+), 124 deletions(-) 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 640023d..8a6889a 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 @@ -20,7 +20,9 @@ */ package org.chorem.bow.action.bookmark; +import java.util.Collections; import java.util.Date; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -134,135 +136,23 @@ public class AddOrUpdateAction extends BowBaseAction { return redirectTo; } -// @Override -// public String execute() { -// String result = SUCCESS; -// try { -// BowProxy proxy = getBowProxy(); -// BowBookmark bookmark = null; -// BowBookmark bookmarkToModify = null; -// -// BowUser user = getBowSession().getUser(); -// String userId = user.getWikittyId(); -// if (StringUtils.isNotBlank(bookmarkId)) { -// bookmarkToModify = proxy.restore(BowBookmark.class, bookmarkId); -// } -// if (log.isDebugEnabled()) { -// log.debug("Change old wikitty: " + bookmarkToModify); -// } -// -// // gere le cas d'une mise a jour ou d'un ajout via le formulaire -// if (name != null) { -// // Si l'alias prive souhaite est deja utilise on ne l'accept pas -// // Si l'alias public souhaite est deja utilise on ne l'accept pas -// // TODO sletellier 20110416 : return error message when public or private alias is already used -// WikittyQuery privateAliasCriteria = null; -// WikittyQuery publicAliasCriteria = null; -// if (StringUtils.isNotEmpty(privateAlias)) { -// privateAliasCriteria = new WikittyQueryMaker().and() -// .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_PRIVATEALIAS, privateAlias) -// .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, userId) -// .end().setLimit(0); -// } -// if (StringUtils.isNotEmpty(publicAlias)) { -// publicAliasCriteria = new WikittyQueryMaker() -// .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_PUBLICALIAS, publicAlias) -// .end().setLimit(0); -// } -// WikittyQueryResult<String>[] aliasResult = proxy.findAllByQuery( -// privateAliasCriteria, publicAliasCriteria); -// -// if (aliasResult[0] != null && aliasResult[0].getTotalResult() > 0) { -// if (bookmarkToModify == null) { -// privateAlias = ""; -// } else { -// privateAlias = bookmarkToModify.getPrivateAlias(); -// } -// } -// if (aliasResult[1] != null && aliasResult[1].getTotalResult() > 0) { -// if (bookmarkToModify == null) { -// publicAlias = ""; -// } else { -// publicAlias = bookmarkToModify.getPublicAlias(); -// } -// } -// -// if (bookmarkToModify == null) { -// bookmark = BookmarkUtils.createBookmark( -// link, name, tags, user, privateAlias, publicAlias, null); -// } else { -// BookmarkUtils.updateBookmark( -// bookmarkToModify, name, link, tags, privateAlias, publicAlias); -// } -// } else { //This part is for the bookmark addition by script -// if (nameAndTags != null) { -// bookmark = BookmarkUtils.createBookmark(link, nameAndTags, user); -// } -// } -// // si on a reussi a creer le bookmark, on regarde s'il ne faut pas -// // le fusionner avec un deja existant -// if (bookmark != null && !bookmark.getDescription().isEmpty() -// && !bookmark.getOwner().isEmpty()) { -// -// // looking for already bookmark with same url, to fusion them -// String link = bookmark.getLink(); -// WikittyQuery criteria = new WikittyQueryMaker().and() -// .eq(BowBookmark.FQ_FIELD_BOWBOOKMARK_LINK, link) -// .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, userId) -// .end(); -// BowBookmark oldBookmark = -// proxy.findByQuery(BowBookmark.class, criteria); -// if (oldBookmark != null) { -// // fusionne les descriptions et les tags -// // par contre on prend le dernier privateAlias prive choisi par -// // l'utilisateur s'il y en a un -// String description = oldBookmark.getDescription(); -// if (!StringUtils.isEmpty(bookmark.getDescription())) { -// description += "\n"; -// description += BowUtils.formatDate( -// bookmark.getCreationDate()) + ": "; -// description += bookmark.getDescription(); -// } -// -// oldBookmark.setDescription(description); -// oldBookmark.addAllLabels(bookmark.getLabels()); -// String privateAlias = bookmark.getPrivateAlias(); -// if (!StringUtils.isEmpty(privateAlias)) { -// oldBookmark.setPrivateAlias(privateAlias); -// } -// -// bookmark = oldBookmark; -// } -// -// } -// -// if (bookmark != null || bookmarkToModify != null) { -// proxy.store(bookmark, bookmarkToModify); //Stores the bookmark if everything is ok -// addActionMessage(t("bow.bookmark.add.successful")); -// if (log.isDebugEnabled()) { -// log.debug("Adding URL"); -// } -// } -// redirectTo = BowUtils.redirectTo(tagLine, fullTextLine); -// } catch (Exception eee) { -// result = ERROR; -// addActionError(t("bow.error.internal")); -// log.error(eee.getMessage(), eee); -// } -// return result; -// } - @Override public String execute() { String result = SUCCESS; try { + boolean isScriptlet = false; BowProxy proxy = getBowProxy(); BowBookmark bookmark = null; // if we don't have link, link is last entry in nameAndTags if (StringUtils.isBlank(link)) { - link = StringUtils.substringAfterLast(nameAndTags, "|"); - nameAndTags = StringUtils.substringBeforeLast(nameAndTags, "|"); + if (StringUtils.contains(nameAndTags, "|")) { + link = StringUtils.substringAfterLast(nameAndTags, "|"); + nameAndTags = StringUtils.substringBeforeLast(nameAndTags, "|"); + } else { + link = nameAndTags; + nameAndTags = ""; + } } // gere le cas d'une mise a jour ou d'un ajout via le formulaire @@ -270,12 +160,10 @@ public class AddOrUpdateAction extends BowBaseAction { // on est dans le cas ou l'ajout a ete fait par le scriptlet qui // utilise une seul chaine pour name et tags, on decoupe // et on continue normalement + isScriptlet = true; nameAndTags = StringUtils.trimToEmpty(nameAndTags); name = StringUtils.substringBeforeLast(nameAndTags, "|"); tags = StringUtils.substringAfterLast(nameAndTags, "|"); - - // on essai d'afficher l'entree ajoutee - fullTextLine = link; } @@ -384,7 +272,21 @@ public class AddOrUpdateAction extends BowBaseAction { if (log.isDebugEnabled()) { log.debug("Adding URL"); } - redirectTo = BowUtils.redirectTo(tagLine, fullTextLine); + + if (isScriptlet && StringUtils.isBlank(bookmark.getDescription()) + && CollectionUtils.isEmpty(bookmark.getLabels())) { + // le bookmark est trop peu renseigne, on renvoie vers l'edition + redirectTo = String.format("editBookmark.action?id=%s", bookmark.getWikittyId()); + } else { + // on essai d'afficher l'entree ajoutee/modifiee + if (StringUtils.isEmpty(tagLine) && StringUtils.isEmpty(fullTextLine)) { + // il n'y avait pas de filtre on filtre sur l'element qui vient d'etre modifie + listId = Collections.singletonList(bookmark.getWikittyId()); + redirectTo = BowUtils.redirectTo(listId, tagLine, fullTextLine); + } else { + redirectTo = BowUtils.redirectTo(tagLine, fullTextLine); + } + } } catch (Exception eee) { result = ERROR; addActionError(t("bow.error.internal")); -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.