r68 - in trunk: . src/main/java/org/chorem/bow src/main/webapp src/main/webapp/css src/main/webapp/img src/main/xmi
Author: bbrossaud Date: 2010-06-08 17:07:02 +0200 (Tue, 08 Jun 2010) New Revision: 68 Url: http://chorem.org/repositories/revision/bow/68 Log: integrated the new design, addition preference and remove buggs Added: trunk/src/main/webapp/bookmarkHome.jsp trunk/src/main/webapp/bookmarkSearch.jsp trunk/src/main/webapp/css/bookmark.css trunk/src/main/webapp/css/connexion.css trunk/src/main/webapp/img/aide.jpg trunk/src/main/webapp/img/click.jpg trunk/src/main/webapp/img/croix.jpg trunk/src/main/webapp/img/edit.jpg trunk/src/main/webapp/img/fdboutonV.jpg trunk/src/main/webapp/img/fondbouton.jpg trunk/src/main/webapp/img/fondconnexion.jpg trunk/src/main/webapp/img/fondhead.jpg trunk/src/main/webapp/img/livreG.jpg trunk/src/main/webapp/img/logobow.jpg trunk/src/main/webapp/img/moyen-livre.jpg trunk/src/main/webapp/img/piedmenu.jpg trunk/src/main/webapp/img/pointemenu.jpg trunk/src/main/webapp/img/ptit-livre.jpg trunk/src/main/webapp/img/tag.jpg trunk/src/main/webapp/preference.jsp trunk/src/main/webapp/preferences.jsp Removed: trunk/src/main/webapp/css/styles.css Modified: trunk/TODO.txt trunk/src/main/java/org/chorem/bow/BowProxy.java trunk/src/main/java/org/chorem/bow/ControllerServlet.java trunk/src/main/webapp/footer.jsp trunk/src/main/webapp/header.jsp trunk/src/main/webapp/login.jsp trunk/src/main/webapp/main.jsp trunk/src/main/webapp/openSearchResult.jsp trunk/src/main/webapp/register.jsp trunk/src/main/xmi/bow.zargo Modified: trunk/TODO.txt =================================================================== --- trunk/TODO.txt 2010-06-04 13:37:29 UTC (rev 67) +++ trunk/TODO.txt 2010-06-08 15:07:02 UTC (rev 68) @@ -29,3 +29,7 @@ ===> openSearch ==> proposer des url ===> facetisations + +===> getElementsByName(); + +===> formulaire Modified: trunk/src/main/java/org/chorem/bow/BowProxy.java =================================================================== --- trunk/src/main/java/org/chorem/bow/BowProxy.java 2010-06-04 13:37:29 UTC (rev 67) +++ trunk/src/main/java/org/chorem/bow/BowProxy.java 2010-06-08 15:07:02 UTC (rev 68) @@ -52,8 +52,6 @@ protected BowProxy(BowConfig config) { WikittyService ws = new WikittyServiceJDBC(config.getFlatOptions()); - // fix me 04/06/2009 - ws = new WikittyServiceNotifier(ws); ws = new WikittyServiceCached(ws); setWikittyService(ws); } Modified: trunk/src/main/java/org/chorem/bow/ControllerServlet.java =================================================================== --- trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-06-04 13:37:29 UTC (rev 67) +++ trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-06-08 15:07:02 UTC (rev 68) @@ -164,29 +164,12 @@ log.debug("Going to actionEditBookmark"); } this.actionEditBookmark(request, response, user); - } else if (action.equals("orderAsc") && user != null) { + } else if (action.equals("order") && user != null) { if (log.isDebugEnabled()) { - log.debug("Going to actionOrderAsc"); + log.debug("Going to actionOrder"); } - this.actionOrderAsc(request, response, user); + this.actionOrder(request, response, user); request.getRequestDispatcher("main.jsp").forward(request, response); - } else if (action.equals("orderAscOS") && user != null) { - if (log.isDebugEnabled()) { - log.debug("Going to actionOrderAsc"); - } - this.actionOrderAsc(request, response, user); - request.getRequestDispatcher("openSearchResult.jsp").forward(request, response); - } else if (action.equals("orderDesc") && user != null) { - if (log.isDebugEnabled()) { - log.debug("Going to actionOrderDesc"); - } - this.actionOrderDesc(request, response, user); - request.getRequestDispatcher("main.jsp").forward(request, response); - } else if (action.equals("orderDescOS") && user != null) { - if (log.isDebugEnabled()) { - log.debug("Going to actionOrderDesc"); - } - this.actionOrderDesc(request, response, user); } else if (action.equals("addClick") && user != null) { if (log.isDebugEnabled()) { log.debug("Going to actionAddClic"); @@ -212,13 +195,24 @@ if (log.isDebugEnabled()) { log.debug("Going to actionOpenSearchResult"); } - this.actionOpenSearchResult(request, response, user, token); + this.actionOpenSearchResult(request, response, session, user, token); } else if (action.equals("fullText") && user != null) { if (log.isDebugEnabled()) { log.debug("Going to actionFullText"); } this.actionFullText(request, user); request.getRequestDispatcher("main.jsp").forward(request, response); + } else if (action.equals("preferences") && user != null) { + if (log.isDebugEnabled()) { + log.debug("Going to actionPreferences"); + } + request.getRequestDispatcher("preferences.jsp").forward(request, response); + } else if (action.equals("changePreferences") && user != null) { + if (log.isDebugEnabled()) { + log.debug("Going to actionChangePreferences"); + } + this.actionChangePreferences(request, session, user); + request.getRequestDispatcher("preferences.jsp").forward(request, response); } else { if (user != null) { request.getRequestDispatcher("error.jsp").forward(request, response); @@ -243,12 +237,14 @@ * @throws ServletException if a servlet error occurs * @description set the openSearch result */ - protected void actionOpenSearchResult(HttpServletRequest request, HttpServletResponse response, User user, String token) - throws IOException, ServletException { + protected void actionOpenSearchResult(HttpServletRequest request, HttpServletResponse response, HttpSession session, User user, String token) + throws IOException, ServletException, NoSuchAlgorithmException { String searchLine = request.getParameter("searchLine"); if (searchLine != null && searchLine.matches("^http://[^ ]*") && !searchLine.contains(" ")) { response.sendRedirect(searchLine); } else { + session.setAttribute("user", user); + initializeToken(session, user); WikittyProxy proxy = BowProxy.getInstance(); Criteria criteria = getBookmarkListCriteriaByUser(user, searchLine); criteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK); @@ -256,7 +252,7 @@ BookmarkActions bookmarkActions = createBookmarkActions(request, result, searchLine); request.setAttribute("bookmarkActions", bookmarkActions); request.setAttribute("token", token); - request.getRequestDispatcher("openSearchResult.jsp").forward(request, response); + request.getRequestDispatcher("main.jsp").forward(request, response); } } @@ -340,7 +336,7 @@ * @throws ServletException if a servlet error occurs * @description order the bookmarks by type */ - protected void actionOrderAsc(HttpServletRequest request, HttpServletResponse response, User user) + protected void actionOrder(HttpServletRequest request, HttpServletResponse response, User user) throws IOException, ServletException { String type = request.getParameter("type"); String searchLine = request.getParameter("searchLine"); @@ -348,42 +344,22 @@ if (type != null && baseCriteria != null && !type.isEmpty()) { WikittyProxy proxy = BowProxy.getInstance(); PagedResult result = null; - if (type.equals("name")) { + if (type.equals("ascName")) { Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_DESCRIPTION); result = proxy.findAllByCriteria(Bookmark.class, criteria); - } else if (type.equals("date")) { + } else if (type.equals("ascDate")) { Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_DATE); result = proxy.findAllByCriteria(Bookmark.class, criteria); - } else if (type.equals("click")) { + } else if (type.equals("ascClick")) { Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_CLICK); result = proxy.findAllByCriteria(Bookmark.class, criteria); - } - BookmarkActions bookmarkActions = createBookmarkActions(request, result, searchLine); - request.setAttribute("bookmarkActions", bookmarkActions); - } - } - - /* @param request servlet request - * @param response servlet response - * @param user the user - * @throws ServletException if a servlet error occurs - * @description order the bookmarks by type - */ - protected void actionOrderDesc(HttpServletRequest request, HttpServletResponse response, User user) - throws IOException, ServletException { - String searchLine = request.getParameter("searchLine"); - String type = request.getParameter("type"); - Criteria baseCriteria = getBookmarkListCriteriaByUser(user, searchLine); - if (type != null && baseCriteria != null && !type.isEmpty()) { - WikittyProxy proxy = BowProxy.getInstance(); - PagedResult result = null; - if (type.equals("name")) { + } else if (type.equals("descName")) { Criteria criteria = baseCriteria.addSortDescending(Bookmark.FQ_FIELD_DESCRIPTION); result = proxy.findAllByCriteria(Bookmark.class, criteria); - } else if (type.equals("date")) { + } else if (type.equals("descDate")) { Criteria criteria = baseCriteria.addSortDescending(Bookmark.FQ_FIELD_DATE); result = proxy.findAllByCriteria(Bookmark.class, criteria); - } else if (type.equals("click")) { + } else if (type.equals("descClick")) { Criteria criteria = baseCriteria.addSortDescending(Bookmark.FQ_FIELD_CLICK); result = proxy.findAllByCriteria(Bookmark.class, criteria); } @@ -409,7 +385,6 @@ request.setAttribute("name", bookmark.getDescription()); request.setAttribute("alias", bookmark.getAlias()); request.setAttribute("tags", BookmarkActions.getBookmarkTagsString(bookmark)); - request.setAttribute("button", "Modify"); request.setAttribute("action", "bow?action=modifyBookmark"); request.setAttribute("bookmarkId", bookmarkId); } @@ -511,6 +486,10 @@ WikittyProxy proxy = BowProxy.getInstance(); Bookmark bookmark = proxy.restore(Bookmark.class, id); if (bookmark != null) { + Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_ALIAS, alias).criteria(); + if (proxy.findByCriteria(Bookmark.class, criteria) != null) { + alias = bookmark.getAlias(); + } BookmarkActions.updateBookmark(bookmark, name, link, tags, alias); proxy.store(bookmark); } @@ -533,16 +512,20 @@ String link = request.getParameter("url"); // url of the website String name = request.getParameter("name"); // website name String alias = request.getParameter("alias"); + WikittyProxy proxy = BowProxy.getInstance(); Bookmark bookmark = null; if (name != null) { String tags = request.getParameter("tags"); // tags + Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_ALIAS, alias).criteria(); + if (proxy.findByCriteria(Bookmark.class, criteria) != null) { + alias = ""; + } bookmark = BookmarkActions.createBookmark(link, name, tags, user, alias, null); } else { // this part is for the bookmark addition by script String nameAndTags = request.getParameter("nameAndTags"); bookmark = BookmarkActions.createBookmark(link, nameAndTags, user); } if (bookmark != null) { - WikittyProxy proxy = BowProxy.getInstance(); proxy.store(bookmark); // store the bookmark if all is Ok if (log.isDebugEnabled()) { log.debug("Adding URL"); @@ -678,6 +661,8 @@ request.getRequestDispatcher("error.jsp").forward(request, response); } else { session.setAttribute("user", login); + Preference preference = proxy.restore(Preference.class, login.getWikittyId()); + session.setAttribute("preference", preference); initializeToken(session, login); actionHome(request, login); request.getRequestDispatcher("main.jsp").forward(request, response); @@ -698,7 +683,10 @@ password = StringUtil.encodeMD5(password); User login = this.checkLogin(email, password); // check if the user exists if (login != null) { + WikittyProxy proxy = BowProxy.getInstance(); session.setAttribute("user", login); + Preference preference = proxy.restore(Preference.class, login.getWikittyId()); + session.setAttribute("preference", preference); initializeToken(session, login); actionHome(request, login); request.getRequestDispatcher("main.jsp").forward(request, response); @@ -971,4 +959,33 @@ } return criteria; } + + private void actionChangePreferences(HttpServletRequest request, HttpSession session, User user) + throws NoSuchAlgorithmException { + String email = request.getParameter("email"); + String password = request.getParameter("password"); + if (email != null && !email.isEmpty()) { + user.setEmail(email); + } + if (password != null && !password.isEmpty()) { + password = StringUtil.encodeMD5(password); + user.setPassword(password); + } + + WikittyProxy proxy = BowProxy.getInstance(); + Preference preference = (Preference) session.getAttribute("preference"); + String colors = request.getParameter("colors"); + preference.setColors(colors); + String tags = request.getParameter("tags"); + preference.setTags(Integer.valueOf(tags)); + String bookmarks = request.getParameter("bookmarks"); + preference.setBookmarks(Integer.valueOf(bookmarks)); + String searchEngineSuggestions = request.getParameter("searchEngineUrlSuggestions"); + preference.setSearchEngineUrlSuggestions(searchEngineSuggestions); + String searchEngineResults = request.getParameter("searchEngineUrlResults"); + preference.setSearchEngineUrlResults(searchEngineResults); + + proxy.store(preference); + request.setAttribute("preference", preference); + } } Added: trunk/src/main/webapp/bookmarkHome.jsp =================================================================== --- trunk/src/main/webapp/bookmarkHome.jsp (rev 0) +++ trunk/src/main/webapp/bookmarkHome.jsp 2010-06-08 15:07:02 UTC (rev 68) @@ -0,0 +1,281 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@page import="org.chorem.bow.BookmarkActions" %> +<%@page import="java.text.SimpleDateFormat" %> +<%@page import="java.util.Iterator" %> +<%@page import="java.util.Set" %> +<%@page import="java.util.ArrayList" %> +<%@page import="java.util.List" %> +<%@page import="org.chorem.bow.TokenActions" %> +<%@page import="org.nuiton.wikitty.FacetTopic" %> +<%@page import="org.chorem.bow.Bookmark" %> +<%@page import="org.chorem.bow.Preference" %> + + +<% + TokenActions tokenActions = (TokenActions) session.getAttribute("tokenActions"); + BookmarkActions bookmarkActions = (BookmarkActions) request.getAttribute("bookmarkActions"); + if (tokenActions != null && bookmarkActions != null) { + String temporaryToken = tokenActions.getTemporaryToken(); + String permanentToken = tokenActions.getPermanentToken(); + String url = (String) request.getAttribute("bowUrl"); + int nbTags = 100; + int nbBookmarks = 10; + Preference preference = (Preference) session.getAttribute("preference"); + if (preference != null) { + if (preference.getBookmarks() > 0) { + nbBookmarks = preference.getBookmarks(); + } + if (preference.getTags() > 0) { + nbTags = preference.getTags(); + } + } + String formLink = (String) request.getAttribute("link"); + String formName = (String) request.getAttribute("name"); + String formBookmarkId = (String) request.getAttribute("bookmarkId"); + String formTags = (String) request.getAttribute("tags"); + String formAlias = (String) request.getAttribute("alias"); + String formAction = (String) request.getAttribute("action"); + + if (formLink == null) { + formLink = "URL"; + } + if (formName == null) { + formName = "name"; + } + if (formTags == null) { + formTags = "tag1 tag2..."; + } + if (formAlias == null) { + formAlias = "alias"; + } + if (formAction == null) { + formAction = "bow?action=addUrl"; + } +%> +<body> + <div id="headback"> + <div id="head"> + <div id="headleft"> + <a class="logo" href="<%=url%>bow?action=home">bow</a>(Bookmarks On the Web) + </div> + <div id="headright"> + <form action="bow?action=logout"> + <button>Logout</button> + </form> + <a href="#">Aide</a> + </div> + </div> + </div> + + <div id="mainbodyback" class="clearfix"> + <div id="mainbody"> + <div id="content"> + + <div class="menu clearfix"> + <p>The most used bookmarks</p> + </div> + <div id="contenu"> + <% + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + List<Bookmark> bookmarkList = bookmarkActions.getBookmarks(); + if (!bookmarkList.isEmpty()) { + int count = 0; + for (Bookmark bookmark : bookmarkList) { + String link = bookmark.getLink(); + link = link.replace("'", "\\'"); + %> + <div class="bookmark"> + <div class="bookmarkhead clearfix"> + <a href="<%=url + bookmark.getAlias()%>" title="<%=url + bookmark.getAlias()%>" target="_blank"> + <%=bookmark.getAlias()%> + </a> + <span> (<%=sdf.format(bookmark.getDate())%>)</span> + <a class="edit" href="bow?action=editBookmark&bookmarkId=<%=bookmark.getWikittyId()%>" onclick="return modify('<%=bookmark.getDescription()%>', '<%=bookmark.getAlias()%>', '<%=BookmarkActions.getBookmarkTagsString(bookmark)%>', '<%=link%>', 'bow?action=modifyBookmark&bookmarkId=<%=bookmark.getWikittyId()%>', '<%=bookmark.getWikittyId()%>');"></a> + <a class="supprim" href="bow?action=removeBookmark&bookmarkId=<%=bookmark.getWikittyId()%>"></a> + </div> + <div class="bookmarkcontenu clearfix"> + <div class="screenshot"></div> + <div class="description"> + <h3>Description :</h3> + <p> + <a title ="<%=bookmark.getLink()%>" href="bow?action=addClick&bookmarkId=<%=bookmark.getWikittyId()%>" target="_blank"><%=bookmark.getDescription()%></a> + </p> + <p class="tags"> + <strong>Tags :</strong> + <% + Set<String> tagList = bookmark.getTags(); + if (tagList != null && !tagList.isEmpty()) { + for (String tag : tagList) { + if (formBookmarkId != null && formBookmarkId.equals(bookmark.getWikittyId())) { + %> + <a style="text-decoration: none;" href="bow?action=deleteTag&bookmarkId=<%=bookmark.getWikittyId()%>&deleteTag=<%=tag%>" > + <img style="border:none;" SRC="img/delete.png" ALT="Delete tag" TITLE="Delete" /> + </a> + <%} else {%> + <a name="<%=bookmark.getWikittyId()%>" style="display:none; text-decoration: none;" href="bow?action=deleteTag&bookmarkId=<%=bookmark.getWikittyId()%>&deleteTag=<%=tag%>" > + <img style="border:none;" SRC="img/delete.png" ALT="Delete tag" TITLE="Delete" /> + </a> + <%}%> + <a href="bow?action=search&searchLine=<%=tag%>" style="text-decoration: none"><%=tag%></a> + <% + } + } + %> + </p> + </div> + <div class="click"><%=bookmark.getClick()%></div> + </div> + </div> + <% + ++count; + if (count >= nbBookmarks) { + break; + } + } + } else { + %> + <h2>No Bookmarks</h2> + <% } + %> + </div> + <div class="menu clearfix"> + <p>The last addition bookmarks</p> + </div> + <div id="contenu"> + + <% + List<Bookmark> lastBookmarks = bookmarkActions.getLastBookmarks(); + if (!lastBookmarks.isEmpty()) { + int count = 0; + for (Bookmark bookmark : lastBookmarks) { + String link = bookmark.getLink(); + link = link.replace("'", "\\'"); + %> + <div class="bookmark"> + <div class="bookmarkhead clearfix"> + <a href="<%=url + bookmark.getAlias()%>" title="<%=url + bookmark.getAlias()%>" target="_blank"> + <%=bookmark.getAlias()%> + </a> + <span> (<%=sdf.format(bookmark.getDate())%>)</span> + <a class="edit" href="bow?action=editBookmark&bookmarkId=<%=bookmark.getWikittyId()%>" onclick="return modify('<%=bookmark.getDescription()%>', '<%=bookmark.getAlias()%>', '<%=BookmarkActions.getBookmarkTagsString(bookmark)%>', '<%=link%>', 'bow?action=modifyBookmark&bookmarkId=<%=bookmark.getWikittyId()%>', '<%=bookmark.getWikittyId()%>');"></a> + <a class="supprim" href="bow?action=removeBookmark&bookmarkId=<%=bookmark.getWikittyId()%>"></a> + </div> + <div class="bookmarkcontenu clearfix"> + <div class="screenshot"></div> + <div class="description"> + <h3>Description :</h3> + <p> + <a title ="<%=bookmark.getLink()%>" href="bow?action=addClick&bookmarkId=<%=bookmark.getWikittyId()%>" target="_blank"><%=bookmark.getDescription()%></a> + </p> + <p class="tags"> + <strong>Tags :</strong> + <% + Set<String> tagList = bookmark.getTags(); + if (tagList != null && !tagList.isEmpty()) { + for (String tag : tagList) { + if (formBookmarkId != null && formBookmarkId.equals(bookmark.getWikittyId())) { + %> + <a style="text-decoration: none;" href="bow?action=deleteTag&bookmarkId=<%=bookmark.getWikittyId()%>&deleteTag=<%=tag%>" > + <img style="border:none;" SRC="img/delete.png" ALT="Delete tag" TITLE="Delete" /> + </a> + <%} else {%> + <a name="<%=bookmark.getWikittyId()%>" style="display:none; text-decoration: none;" href="bow?action=deleteTag&bookmarkId=<%=bookmark.getWikittyId()%>&deleteTag=<%=tag%>" > + <img style="border:none;" SRC="img/delete.png" ALT="Delete tag" TITLE="Delete" /> + </a> + <%}%> + <a href="bow?action=search&searchLine=<%=tag%>" style="text-decoration: none"><%=tag%></a> + <% + } + } + %> + </p> + </div> + <div class="click"><%=bookmark.getClick()%></div> + </div> + </div> + + <% + ++count; + if (count >= nbBookmarks) { + break; + } + } + } else { + %> + <h2>No Bookmarks</h2> + <% } + %> + </div> + </div> + <div id="colonneD"> + <ul class="droite"> + <li><a href="bow?action=preferences">Preferences</a></li> + <li><a href="javascript:var%20url=location.href;var%20nameAndTags=prompt('Entrez%20le%20nom%20du%20lien%20et%20la%20liste%20des%20tags%20sous%20la%20forme:%20name|tag1%20tag2%20tag3',%20document.title+'|');if%20(nameAndTags!=(document.title+'|')){var%20link='<%=url%>bow?action=addUrl&token=<%=temporaryToken%>&url='+encodeURIComponent(url)+'&nameAndTags='+encodeURIComponent(nameAndTags);var%20script=document.createElement('script');script.src=link;script.type='text/javascript';document.body.appendChild(script);}void(0);">Temporary token</a></li> + <li><a href="javascript:var%20url=location.href;var%20nameAndTags=prompt('Entrez%20le%20nom%20du%20lien%20et%20la%20liste%20des%20tags%20sous%20la%20forme:%20name|tag1%20tag2%20tag3',%20document.title+'|');if%20(nameAndTags!=(document.title+'|')){var%20link='<%=url%>bow?action=addUrl&token=<%=permanentToken%>&url='+encodeURIComponent(url)+'&nameAndTags='+encodeURIComponent(nameAndTags);var%20script=document.createElement('script');script.src=link;script.type='text/javascript';document.body.appendChild(script);}void(0);">Current permanent token</a></li> + <li><a href="bow?action=generateToken">Regenerate permanent token</a></li> + </ul> + <div id="add"> + <h2>Add / Modify</h2> + <form id="bookmarkForm" method="POST" action="<%=formAction%>"> + <div class="input"><label>URL</label><input type="text" name="url" value="<%=formLink%>" /></div> + <div class="input"><label>ALIAS</label><input type="text" name="alias" value="<%=formAlias%>" /></div> + <div class="input"><label>DESC</label><input type="text" name="name" value="<%=formName%>" /></div> + <div class="input"><label>TAGS</label><input type="text" name="tags" value="<%=formTags%>" /></div> + <button>Save</button> + </form> + </div> + <div id="nuage"> + <% if (bookmarkActions != null) { + List<FacetTopic> tagCloud = bookmarkActions.getTagsCloud(); + int count = 0; + for (FacetTopic tag : tagCloud) { + int value = tag.getCount(); + String tagName = tag.getTopicName(); + int font = bookmarkActions.getFont(value); + %> + <a href="bow?action=search&addTag=<%=tagName%>" title="<%=value%> results" class="tag" style="font-size: <%=font%>px;"><%=tagName%></a> + <% + ++count; + if (count >= nbTags) { + break; + } + } + } + %> + </div> + <div id="recherche"> + <h2>Research</h2> + <form method="POST" action="bow?action=search"> + <div class="input"> + <input type="text" name="searchLine"/> + <button>Find</button> + </div> + </form> + </div> + <div id="recherche"> + <h2>Full text research</h2> + <form method="POST" action="bow?action=fullText"> + <div class="input"> + <input type="text" name="fullTextLine" value="<%=bookmarkActions.getFullTextLine()%>" /> + <button>Find</button> + </div> + </form> + </div> + <div id="import"> + <h2>Import Bookmarks</h2> + <form method="POST" action="bow?action=importBookmarks" enctype="multipart/form-data"> + <div class="input"> + <input type="file" name="upfile" /> + <button>Parcourir</button> + </div> + </form> + <a href="bow?action=exportBookmarks">Export bookmarks</a> + </div> + <div class="colonnebas"></div> + </div> + + </div> + + </div> +</body> +<%}%> \ No newline at end of file Added: trunk/src/main/webapp/bookmarkSearch.jsp =================================================================== --- trunk/src/main/webapp/bookmarkSearch.jsp (rev 0) +++ trunk/src/main/webapp/bookmarkSearch.jsp 2010-06-08 15:07:02 UTC (rev 68) @@ -0,0 +1,216 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@page import="org.chorem.bow.Bookmark" %> +<%@page import="org.chorem.bow.BookmarkActions" %> +<%@page import="java.text.SimpleDateFormat" %> +<%@page import="java.util.Iterator" %> +<%@page import="java.util.Set" %> +<%@page import="java.util.ArrayList" %> +<%@page import="java.util.List" %> +<%@page import="org.chorem.bow.TokenActions" %> +<%@page import="org.nuiton.wikitty.FacetTopic" %> +<%@page import="org.chorem.bow.Preference" %> + +<% + TokenActions tokenActions = (TokenActions) session.getAttribute("tokenActions"); + BookmarkActions bookmarkActions = (BookmarkActions) request.getAttribute("bookmarkActions"); + if (tokenActions != null && bookmarkActions != null) { + String temporaryToken = tokenActions.getTemporaryToken(); + String permanentToken = tokenActions.getPermanentToken(); + String searchLine = bookmarkActions.getSearchLine(); + String fullText = bookmarkActions.getFullTextLine(); + String url = (String) request.getAttribute("bowUrl"); + Preference preference = (Preference) session.getAttribute("preference"); + int nbTags = 100; + if (preference != null) { + if (preference.getTags() > 0) { + nbTags = preference.getTags(); + } + } + String formLink = (String) request.getAttribute("link"); + String formName = (String) request.getAttribute("name"); + String formBookmarkId = (String) request.getAttribute("bookmarkId"); + String formTags = (String) request.getAttribute("tags"); + String formAlias = (String) request.getAttribute("alias"); + String formAction = (String) request.getAttribute("action"); + + if (formLink == null) { + formLink = "URL"; + } + if (formName == null) { + formName = "name"; + } + if (formTags == null) { + formTags = "tag1 tag2..."; + } + if (formAlias == null) { + formAlias = "alias"; + } + if (formAction == null) { + formAction = "bow?action=addUrl"; + } +%> + + +<body> + <div id="headback"> + <div id="head"> + <div id="headleft"> + <a class="logo" href="<%=url%>bow?action=home">bow</a>(Bookmarks On the Web) + </div> + <div id="headright"> + <form action="bow?action=logout"> + <button>Logout</button> + </form> + <a href="#">Aide</a> + </div> + </div> + </div> + <div id="mainbodyback" class="clearfix"> + <div id="mainbody"> + + <div id="content"> + <div class="menu clearfix"><p>Search</p> + <form method="POST" action="bow?action=order&searchLine=<%=searchLine%>&fullTextLine=<%=fullText%>"> + <label>Order By :</label> + <select name="type"> + <option value="ascName">Asc Name</option> + <option value="descName">Desc Name</option> + <option value="ascClick">Asc Click</option> + <option value="descClick">Desc Click</option> + <option value="ascDate">Asc Date</option> + <option value="descDate">Desc Date</option> + </select> + <button type="submit">OK</button> + </form> + </div> + <div id="contenu"> + <% + List<Bookmark> bookmarkList = bookmarkActions.getBookmarks(); + if (!bookmarkList.isEmpty()) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + for (Bookmark bookmark : bookmarkList) { + String link = bookmark.getLink(); + link = link.replace("'", "\\'"); + %> + <div class="bookmark"> + <div class="bookmarkhead clearfix"> + <a href="<%=url + bookmark.getAlias()%>" title="<%=url + bookmark.getAlias()%>" target="_blank"> + <%=bookmark.getAlias()%> + </a> + <span> (<%=sdf.format(bookmark.getDate())%>)</span> + <a class="edit" href="bow?action=editBookmark&bookmarkId=<%=bookmark.getWikittyId()%>&searchLine=<%=searchLine%>&fullTextLine=<%=fullText%>" onclick="return modify('<%=bookmark.getDescription()%>', '<%=bookmark.getAlias()%>', '<%=BookmarkActions.getBookmarkTagsString(bookmark)%>', '<%=link%>', 'bow?action=modifyBookmark&searchLine=<%=searchLine%>&fullTextLine=<%=fullText%>&bookmarkId=<%=bookmark.getWikittyId()%>', '<%=bookmark.getWikittyId()%>');"></a> + <a class="supprim" href="bow?action=removeBookmark&bookmarkId=<%=bookmark.getWikittyId()%>&searchLine=<%=searchLine%>&fullTextLine=<%=fullText%>"></a> + </div> + <div class="bookmarkcontenu clearfix"> + <div class="screenshot"></div> + <div class="description"> + <h3>Description :</h3> + <p><a title ="<%=bookmark.getLink()%>" href="bow?action=addClick&bookmarkId=<%=bookmark.getWikittyId()%>" target="_blank"><%=bookmark.getDescription()%></a></p> + <p class="tags"><strong>Tags :</strong> + <% + Set<String> tagList = bookmark.getTags(); + if (tagList != null && !tagList.isEmpty()) { + for (String tag : tagList) { + if (formBookmarkId != null && formBookmarkId.equals(bookmark.getWikittyId())) { + %> + <a style="text-decoration: none;" href="bow?action=deleteTag&bookmarkId=<%=bookmark.getWikittyId()%>&deleteTag=<%=tag%>&searchLine=<%=searchLine%>&fullTextLine=<%=fullText%>" > + <img style="border:none;" SRC="img/delete.png" ALT="Delete tag" TITLE="Delete" /> + </a> + <%} else {%> + <a name="<%=bookmark.getWikittyId()%>" style="display:none; text-decoration: none;" href="bow?action=deleteTag&bookmarkId=<%=bookmark.getWikittyId()%>&deleteTag=<%=tag%>&searchLine=<%=searchLine%>&fullTextLine=<%=fullText%>" > + <img style="border:none;" SRC="img/delete.png" ALT="Delete tag" TITLE="Delete" /> + </a> + <%}%> + <a href="bow?action=search&searchLine=<%=tag%>" style="text-decoration: none;"><%=tag%></a> + <% + } + } + %> + </p> + </div> + <div class="click"><%=bookmark.getClick()%></div> + </div> + </div> + <% + } + } else { + %> + <h2>No Bookmarks</h2> + <%}%> + </div> + </div> + + <div id="colonneD"> + <ul class="droite"> + <li><a href="bow?action=preferences">Preferences</a></li> + <li><a href="javascript:var%20url=location.href;var%20nameAndTags=prompt('Entrez%20le%20nom%20du%20lien%20et%20la%20liste%20des%20tags%20sous%20la%20forme:%20name|tag1%20tag2%20tag3',%20document.title+'|');var%20link='<%=url%>bow?action=addUrl&token=<%=temporaryToken%>&url='+encodeURIComponent(url)+'&nameAndTags='+encodeURIComponent(nameAndTags);var%20script=document.createElement('script');script.src=link;script.type='text/javascript';document.body.appendChild(script);void(0);">Temporary token</a></li> + <li><a href="javascript:var%20url=location.href;var%20nameAndTags=prompt('Entrez%20le%20nom%20du%20lien%20et%20la%20liste%20des%20tags%20sous%20la%20forme:%20name|tag1%20tag2%20tag3',%20document.title+'|');var%20link='<%=url%>bow?action=addUrl&token=<%=permanentToken%>&url='+encodeURIComponent(url)+'&nameAndTags='+encodeURIComponent(nameAndTags);var%20script=document.createElement('script');script.src=link;script.type='text/javascript';document.body.appendChild(script);void(0);">Current permanent token</a></li> + <li><a href="bow?action=generateToken&searchLine=<%=searchLine%>&fullTextLine=<%=fullText%>">Regenerate permanent token</a></li> + </ul> + <div id="add"> + <h2>Add / Modify</h2> + <form id="bookmarkForm" method="POST" action="<%=formAction%>&searchLine=<%=searchLine%>&fullTextLine=<%=fullText%>"> + <div class="input"><label>URL</label><input type="text" name="url" value="<%=formLink%>" /></div> + <div class="input"><label>ALIAS</label><input type="text" name="alias" value="<%=formAlias%>" /></div> + <div class="input"><label>DESC</label><input type="text" name="name" value="<%=formName%>" /></div> + <div class="input"><label>TAGS</label><input type="text" name="tags" value="<%=formTags%>" /></div> + <button>Save</button> + </form> + </div> + <div id="nuage"> + <% if (bookmarkActions != null) { + List<FacetTopic> tagCloud = bookmarkActions.getTagsCloud(); + int count = 0; + for (FacetTopic tag : tagCloud) { + int value = tag.getCount(); + String tagName = tag.getTopicName(); + int font = bookmarkActions.getFont(value); + %> + <a href="bow?action=search&addTag=<%=tagName%>&searchLine=<%=searchLine%>" title="<%=value%> results" class="tag" style="font-size: <%=font%>px;"><%=tagName%></a> + <% + ++count; + if (count >= nbTags) { + break; + } + } + } + %> + </div> + <div id="recherche"> + <h2>Research</h2> + <form method="POST" action="bow?action=search"> + <div class="input"> + <input type="text" name="searchLine" value="<%=searchLine%>" /> + <button>Find</button> + </div> + </form> + </div> + <div id="recherche"> + <h2>Full text research</h2> + <form method="POST" action="bow?action=fullText"> + <div class="input"> + <input type="text" name="fullTextLine" value="<%=bookmarkActions.getFullTextLine()%>" /> + <button>Find</button> + </div> + </form> + </div> + <div id="import"> + <h2>Import Bookmarks</h2> + <form method="post" action="bow?action=importBookmarks&searchLine=<%=searchLine%>&fullTextLine=<%=fullText%>" enctype="multipart/form-data"> + <div class="input"> + <input type="file" name="upfile" /> + <br/> + <button type="submit">Import</button> + </div> + </form> + <a href="bow?action=exportBookmarks&searchLine=<%=searchLine%>&fullTextLine=<%=fullText%>">Export bookmarks</a> + </div> + <div class="colonnebas"></div> + </div> + + </div> + + </div> +</body> +<%}%> \ No newline at end of file Added: trunk/src/main/webapp/css/bookmark.css =================================================================== --- trunk/src/main/webapp/css/bookmark.css (rev 0) +++ trunk/src/main/webapp/css/bookmark.css 2010-06-08 15:07:02 UTC (rev 68) @@ -0,0 +1,323 @@ +@charset "utf-8"; +/*CSS Document*/ +*{ + padding:0; + margin:0; +} + +/*.clearfix { + height:1%; +}*/ + +.clearfix:after { + content:"."; + height:0; + line-height:0; + display:block; + visibility:hidden; + clear:both; +} + +body{ + font-size:10px; + font-family:Verdana, Arial, Helvetica, sans-serif; +} + +#headback{ + background:#FFFFFF url(/bow/img/fondhead.jpg) repeat-x; + width:auto; + height:100px; + +} + +#head{ + clear:both; + width:1004px; + height:100px; + margin:0 auto; + position:relative; +} + +#headleft{ + width:740px; + float:left; + height:100px; +} + +#headleft a.logo{ + background:url(/bow/img/logobow.jpg); + width:290px; + height:100px; + text-indent:-99999px; + display:block; +} + +#headright{ + width:264px; + float:left; + background:#bf8a9c url(/bow/img/moyen-livre.jpg)no-repeat 30px 10px; + height:100px; +} + +#headright a{ + text-indent:-99999px; + background:url(/bow/img/aide.jpg) no-repeat; + display:block; + position:absolute; + right:10px; + bottom:5px; + height:34px; + width:34px; +} + +#headright button{ + background:url(/bow/img/fondbouton.jpg) repeat-x; + height:27px; + width:72px; + color:#9c7186; + border:none; + font-size:12px; + line-height:27px; + font-weight:bold; + position:absolute; + top:35px; + right:65px; +} + +#mainbodyback{ + background-color:#9edcf8; + min-height:100px; +} + +#mainbody{ + width:1004px; + margin:0 auto; + position:relative; + clear:both; +} + +#mainbody .menu{ + width:620px; + height:35px; + background:#804561 url(/bow/img/pointemenu.jpg) no-repeat right; + margin-bottom:20px; + padding:0 40px; + line-height:35px; +} + +#mainbody .menu p{ + color:#9edcf8; + font-size:18px; + font-weight:normal; + float:left; +} + +#mainbody .menu form{ + float:right; + color:#9edcf8; + font-size:12px; +} + +#content{ + width:740px; + float:left; + padding-top:20px; +} + +#contenu{ + width:660px; + margin:10px 40px; + background-color:#FFFFFF; +} + +#colonneD{ + width:264px; + float:left; + background-color:#804561; + font-size:140%; + color:#9edcf8; + margin-bottom:30px; +} + +#colonneD a{ + font-size:12px; + color:#9edcf8; +} + +#colonneD ul.droite{ + padding:10px 20px; + border-bottom:2px solid #9edcf8; +} + +#colonneD ul.droite li{ + list-style:none; + height:22px; +} + +#colonneD ul.droite li a{ + font-size:14px; + font-weight:normal; + text-decoration:none; + color:#9edcf8; +} + +#colonneD ul.droite li a:hover{ + text-decoration:underline; +} + +#colonneD #add, +#colonneD #nuage, +#colonneD #recherche, +#colonneD #import{ + padding: 10px 20px; + border-bottom:2px solid #9edcf8; +} + +#colonneD h2{ + text-align:center; + color:#9edcf8; + font-size:170%; + font-weight:normal; +} + +#colonneD #add form{ + text-align:right; +} + +#colonneD form .input{ + padding:10px 0; +} + +#colonneD form input{ + height:22px; + width:146px; +} + +#colonneD #add form label{ + padding-right:10px; +} + +#colonneD form button{ + background:url(/bow/img/fondbouton.jpg) repeat-x 0 2px; + height:28px; + width:72px; + color:#9c7186; + border:none; + font-size:12px; + font-weight:bold; +} + +#colonneD #nuage{ + height:100px; +} + +#colonneD #import{ + border-bottom:none; +} + +#colonneD .colonnebas{ + background:url(/bow/img/piedmenu.jpg) no-repeat; + height:817px; +} + +.bookmark{ + width:660px; + border-bottom:2px solid #9edcf8; +} + +.bookmark .bookmarkhead{ + width:620px; + height:32px; + background-color:#bf8a9c; + padding:0 20px; + position:relative; +} + +.bookmark .bookmarkhead a.edit{ + background:url(/bow/img/edit.jpg) no-repeat; + height:32px; + position:absolute; + top:0; + right:32px; + border:none; + text-decoration:none; +} + +.bookmark .bookmarkhead a.supprim{ + background:url(/bow/img/croix.jpg) no-repeat; + height:32px; + position:absolute; + top:0; + right:0; + border:none; + text-decoration:none; +} + +.bookmark .bookmarkhead a{ + color:#FFF; + font-weight:bold; + font-size:14px; + line-height:32px; + padding-left:40px; + background:url(/bow/img/ptit-livre.jpg) no-repeat; + height:32px; + display:block; + text-decoration:none; +} + +.bookmark .bookmarkcontenu{ + position:relative; +} + +.bookmark .screenshot{ + float:left; + margin:5px 10px; + width:100px; + height:75px; + background:url(/bow/img/livreG.jpg) no-repeat; +} + +.bookmark .description{ + float:left; + margin:5px 5px; + color:#999999; + font-size:12px; + width:480px; +} + +.bookmark .description h3{ + color:#88516c; +} + +.bookmark .description .tags{ + color:#88516c; + background:url(/bow/img/tag.jpg) no-repeat left center; + font-size:12px; + padding-left:30px; + height:28px; + line-height:28px; + padding-top:10px; +} + +.bookmark .click{ + background:url(/bow/img/click.jpg) no-repeat; + padding-top:25px; + position:absolute; + bottom:0; + right:0; + height:27px; + width:31px; + margin:5px; + text-align: center; +} +#footer{ + background-color:#804561; + padding-top:30px; +} + +#footer p{ + color:#bf8a9c; + font-size:14px; + text-align:center; + line-height:50px; +} \ No newline at end of file Property changes on: trunk/src/main/webapp/css/bookmark.css ___________________________________________________________________ Added: svn:executable + * Added: trunk/src/main/webapp/css/connexion.css =================================================================== --- trunk/src/main/webapp/css/connexion.css (rev 0) +++ trunk/src/main/webapp/css/connexion.css 2010-06-08 15:07:02 UTC (rev 68) @@ -0,0 +1,125 @@ +@charset "utf-8"; +/* CSS Document */ +*{ +padding:0; +margin:0; +} +.clearfix {height:1%} + +.clearfix:after { + + content:"."; + + height:0; + + line-height:0; + + display:block; + + visibility:hidden; + + clear:both; + +} +body{ +font-size:10px; +font-family:Verdana, Arial, Helvetica, sans-serif; +} +#headback{ +background:#FFFFFF url(/bow/img/fondhead.jpg) repeat-x; +width:auto; +height:100px; + +} +#head{ +clear:both; +width:1004px; +height:100px; +margin:0 auto; +position:relative; +} +#headleft{ +width:740px; +float:left; +height:100px; +} +#headleft a.logo{ +background:url(/bow/img/logobow.jpg); +width:290px; +height:100px; +text-indent:-99999px; +display:block; +} + +#mainbodyback{ +background-color:#9edcf8; +min-height:100px; +} +#mainbody{ +width:1004px; +margin:0 auto; +position:relative; +clear:both; + +} + +#content{ +width:1004px; +position:relative; +margin:0 auto; +padding-top:20px; +} + +#contenu{ +width:225px; +height:315px; +background:url(/bow/img/fondconnexion.jpg) no-repeat; +position:relative; +margin:100px auto; +padding:10px 70px; +} +#contenu h1{ +color:#804561; +width:60px; +position:relative; +margin:20px auto; +} +#contenu form p{ +color:#804561; +font-size:16px; +font-weight:bold; +padding:15px 0; +} +#contenu form input{ +width:225px; +} +#contenu form button{ +float:right; +margin-top:20px; +background:url(/bow/img/fdboutonV.jpg) repeat-x; +height:31px; +line-height:31px; +width:60px; +color:#FFFFFF; +font-weight:bold; +border:none; +} +#contenu a{ +color:#804561; +position:absolute; +bottom:50px; +left:70px; +font-size:14px; +font-weight:bold; +} +#footer{ +background-color:#804561; +height:50px; +width:auto; +} +#footer p{ +color:#bf8a9c; +font-size:14px; +text-align:center; +line-height:50px; +} \ No newline at end of file Property changes on: trunk/src/main/webapp/css/connexion.css ___________________________________________________________________ Added: svn:executable + * Deleted: trunk/src/main/webapp/css/styles.css =================================================================== --- trunk/src/main/webapp/css/styles.css 2010-06-04 13:37:29 UTC (rev 67) +++ trunk/src/main/webapp/css/styles.css 2010-06-08 15:07:02 UTC (rev 68) @@ -1,175 +0,0 @@ -table.result { - border:3px solid #6495ed; - border-collapse:collapse; - width:900px; - margin:auto; -} -table.actions { - border-collapse:collapse; - width:90%; - margin:auto; -} - -th.result { - font-family:monospace; - border:1px dotted #6495ed; - padding:5px; - background-color:#EFF6FF; -} - -.remove { - width:5%; -} - -.edit { - width:36%; -} - -.name { - width:20%; -} - -.click { - width:14%; -} - -.date { - width:13%; -} - -.tags { - width:12%; -} - -td.result { - font-family:monospace; - border:1px solid #6495ed; - padding:5px; - /*text-align:center;*/ -} -caption { - font-family:sans-serif; -} - -a.logout { - -} - -div.tagCloud { - background: #C5E3F7 none repeat scroll 0 0; - max-width: 300px; - min-width: 200px; - padding-bottom: 5px; - padding-left: 10px; - padding-right: 10px; - padding-top: 5px; - margin-bottom: 5px; - text-align: center; - border-radius:40px; - -webkit-border-radius:40px; - -opera-border-radius:40px; - -moz-border-radius:40px; -} - -#menu { - margin: 0; - padding: 0; - float: left; - background-color:#eaf3f9; - display: inline-block; - position: relative; - width: 20%; -} - -#table { - margin: 0; - padding: 0; - float: left; - position: relative; - width: 80%; -} - -h1.result { - font-family:monospace; - color:#FF3F42; - font-size:1.6em; - font-weight:normal; - line-height:20px; - margin-bottom:20px; - margin-left: 5px; - margin-right: 5px; - text-align: center; - background-color: #C5E3F7; - border-radius: 30px; - -webkit-border-radius: 30px; - -moz-border-radius: 30px; - -opera-border-radius:30px; - -} - -h1.login { - font-family:monospace; - color:#FF3F42; - border-bottom: 3px solid #C5E3F7; - margin-bottom: 10px; -} - -h2.result { - font-family:monospace; - color:#FF3F42; - font-size:1em; - font-weight:normal; - line-height:20px; - margin-top:50px; - text-align: center; -} - -div.menu{ - margin: 10px; - border-bottom: 1px solid #ccc; -} - -#meta{ - list-style-type: none; - padding-left: 0px; -} - -#meta li { - margin-bottom: 5px; -} - -a { - font-family:monospace; - color:#0078C8; - padding: 0; - margin: 0; -} - -a:hover { - color: #0095f8; -} - -a.tag { - font-family:monospace; - color: #FF3F42; - margin-left: 2px; - margin-right: 2px; - border-radius: 30px; - -webkit-border-radius: 30px; - -moz-border-radius: 30px; - -opera-border-radius:30px; - text-decoration:none; -} -a.tag:hover { - background:#A9BCE1 none repeat scroll 0 0; - color:#FFFFFF; -} - -.test { - text-align: center; - float: right; - position: relative; - bottom: 1%; - right: 0px; - width: 4em; -} \ No newline at end of file Modified: trunk/src/main/webapp/footer.jsp =================================================================== --- trunk/src/main/webapp/footer.jsp 2010-06-04 13:37:29 UTC (rev 67) +++ trunk/src/main/webapp/footer.jsp 2010-06-08 15:07:02 UTC (rev 68) @@ -4,15 +4,15 @@ String version = (String) request.getAttribute("version"); %> <body> - <br /> - <br /> - <div class="Index" id="footer" style="float: left"> - <a shape="rect" href="<%=url%>">bow</a> - <a shape="rect" href="http://www.chorem.org/projects/list_files/bow"><%=version%></a> - - <a shape="rect" href="http://www.gnu.org/licenses/agpl.html">Licence AGPL</a> - - <span title="Copyright">©2010</span> - <a shape="rect" href="http://www.codelutin.com">Code Lutin</a> - - <a shape="rect" href="http://www.chorem.org/projects/bow/issues">Rapport de bug</a> - - <a shape="rect" href="http://list.chorem.org/cgi-bin/mailman/listinfo/bow-users">Support utilisateur</a> + <div id="footer"> + <p> + <a shape="rect" href="<%=url%>">bow</a> + <a shape="rect" href="http://www.chorem.org/projects/list_files/bow"><%=version%></a> - + <a shape="rect" href="http://www.gnu.org/licenses/agpl.html">Licence AGPL</a> - + <span title="Copyright">©2010</span> + <a shape="rect" href="http://www.codelutin.com">Code Lutin</a> - + <a shape="rect" href="http://www.chorem.org/projects/bow/issues">Rapport de bug</a> - + <a shape="rect" href="http://list.chorem.org/cgi-bin/mailman/listinfo/bow-users">Support utilisateur</a> + </p> </div> </body> \ No newline at end of file Modified: trunk/src/main/webapp/header.jsp =================================================================== --- trunk/src/main/webapp/header.jsp 2010-06-04 13:37:29 UTC (rev 67) +++ trunk/src/main/webapp/header.jsp 2010-06-08 15:07:02 UTC (rev 68) @@ -4,46 +4,26 @@ <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> - <meta name="description" content="Bookmark On Web" /> + <meta name="description" content="Bookmark On the Web" /> <title>Bow</title> - <link rel="stylesheet" type="text/css" href="./css/styles.css" /> <link rel="search" type="application/opensearchdescription+xml" title="bowTemporarySearchEngine" href="<%=url%>bow?action=temporaryXml" /> <link rel="search" type="application/opensearchdescription+xml" title="bowPermanentSearchEngine" href="<%=url%>bow?action=permanentXml" /> + <link rel="stylesheet" type="text/css" href="./css/bookmark.css" /> <script type="text/javascript"> <!-- - function modify(name, alias, tags, link, action, id) { - var form = document.getElementById("bookmarkForm"); - form.elements["url"].value = link; - form.elements["name"].value = name; - form.elements["tags"].value = tags; - form.elements["alias"].value = alias; - form.elements["submit"].value = 'Modif'; - form.action = action; - var del = null; - var count = 0; - for ((del = document.getElementById(id + count)); del != null; del = document.getElementById(id + count)) { - del.style.display = 'inline'; - ++count; - } - return false; + function modify(name, alias, tags, link, action, id) { + var form = document.getElementById("bookmarkForm"); + form.elements["url"].value = link; + form.elements["name"].value = name; + form.elements["tags"].value = tags; + form.elements["alias"].value = alias; + form.action = action; + var tab = document.getElementsByName(id); + for (var count = 0; count < tab.length; ++count) { + tab[count].style.display = 'inline'; } - - function modifyLast(name, alias, tags, link, action, id) { - var form = document.getElementById("bookmarkForm"); - form.elements["url"].value = link; - form.elements["name"].value = name; - form.elements["tags"].value = tags; - form.elements["alias"].value = alias; - form.elements["submit"].value = 'Modif'; - form.action = action; - var del = null; - var count = 0; - for ((del = document.getElementById(count + id)); del != null; del = document.getElementById(count + id)) { - del.style.display = 'inline'; - ++count; - } - return false; - } + return false; + } //--> </script> </head> \ No newline at end of file Added: trunk/src/main/webapp/img/aide.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/aide.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/click.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/click.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/croix.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/croix.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/edit.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/edit.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/fdboutonV.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/fdboutonV.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/fondbouton.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/fondbouton.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/fondconnexion.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/fondconnexion.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/fondhead.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/fondhead.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/livreG.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/livreG.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/logobow.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/logobow.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/moyen-livre.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/moyen-livre.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/piedmenu.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/piedmenu.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/pointemenu.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/pointemenu.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/ptit-livre.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/ptit-livre.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: trunk/src/main/webapp/img/tag.jpg =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/tag.jpg ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Modified: trunk/src/main/webapp/login.jsp =================================================================== --- trunk/src/main/webapp/login.jsp 2010-06-04 13:37:29 UTC (rev 67) +++ trunk/src/main/webapp/login.jsp 2010-06-08 15:07:02 UTC (rev 68) @@ -6,26 +6,47 @@ %> <html> - <jsp:include page="header.jsp" flush="true"> - <jsp:param name="bowUrl" value="<%=url%>"/> - </jsp:include> + <head> + <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> + <meta name="description" content="Bookmark On the Web" /> + <title>Bow</title> + <link rel="stylesheet" type="text/css" href="./css/connexion.css" /> + </head> <body> - <h1 class="login">Login</h1> - <form method="POST" action="bow?action=login"> - email <input type="text" name="email" size="20"> - <br /> - password <input type=password name="password" size="20"> - <br /> - <input type="submit" value="login"> - </form> - <a href="bow?action=registration">register</a> - <br /> - <%if (error != null) {%> - <font color="red"><%=error%></font> - <%}%> - <jsp:include page="footer.jsp" flush="true" > - <jsp:param name="bowUrl" value="<%=url%>" /> - <jsp:param name="version" value="<%=version%>" /> - </jsp:include> + <div id="headback"> + <div id="head"> + <div id="headleft"> + <a class="logo" href="bow">bow</a> + </div> + </div> + </div> + <div id="mainbodyback"> + <div id="mainbody"> + + <div id="content"> + + <div id="contenu"> + <h1>Login</h1> + <form method="POST" action="bow?action=login" > + <p>Email :</p> + <input type="text" name="email" /> + <p>Password :</p> + <input type=password name="password" /> + <button type="submit">Login</button> + </form> + <a href="bow?action=registration">Register</a> + </div> + <br /> + <%if (error != null) {%> + <font color="red"><%=error%></font> + <%}%> + </div> + + </div> + <jsp:include page="footer.jsp" flush="true" > + <jsp:param name="bowUrl" value="<%=url%>" /> + <jsp:param name="version" value="<%=version%>" /> + </jsp:include> + </div> </body> </html> \ No newline at end of file Modified: trunk/src/main/webapp/main.jsp =================================================================== --- trunk/src/main/webapp/main.jsp 2010-06-04 13:37:29 UTC (rev 67) +++ trunk/src/main/webapp/main.jsp 2010-06-08 15:07:02 UTC (rev 68) @@ -15,18 +15,17 @@ String formBookmarkId = (String) request.getAttribute("bookmarkId"); String formTags = (String) request.getAttribute("tags"); String formAlias = (String) request.getAttribute("alias"); - String formButton = (String) request.getAttribute("button"); String formAction = (String) request.getAttribute("action"); %> -<html> +<html xmlns="http://www.w3.org/1999/xhtml"> <jsp:include page="header.jsp" flush="true"> <jsp:param name="bowUrl" value="<%=url%>"/> </jsp:include> <% if (searchLine != null) { %> - <jsp:include page="search2.jsp" flush="true"> + <jsp:include page="bookmarkSearch.jsp" flush="true"> <jsp:param name="bookmarkActions" value="<%=tokenActions%>" /> <jsp:param name="bookmarkActions" value="<%=bookmarkActions%>" /> <jsp:param name="bowUrl" value="<%=url%>"/> @@ -35,12 +34,12 @@ <jsp:param name="bookmarkId" value="<%=formBookmarkId%>"/> <jsp:param name="tags" value="<%=formTags%>"/> <jsp:param name="alias" value="<%=formAlias%>"/> - <jsp:param name="button" value="<%=formButton%>"/> <jsp:param name="action" value="<%=formAction%>"/> </jsp:include> <% } else { %> - <jsp:include page="home.jsp" flush="true"> + + <jsp:include page="bookmarkHome.jsp" flush="true"> <jsp:param name="bookmarkActions" value="<%=tokenActions%>" /> <jsp:param name="bookmarkActions" value="<%=bookmarkActions%>" /> <jsp:param name="bowUrl" value="<%=url%>"/> @@ -49,7 +48,6 @@ <jsp:param name="bookmarkId" value="<%=formBookmarkId%>"/> <jsp:param name="tags" value="<%=formTags%>"/> <jsp:param name="alias" value="<%=formAlias%>"/> - <jsp:param name="button" value="<%=formButton%>"/> <jsp:param name="action" value="<%=formAction%>"/> </jsp:include> <% } Modified: trunk/src/main/webapp/openSearchResult.jsp =================================================================== --- trunk/src/main/webapp/openSearchResult.jsp 2010-06-04 13:37:29 UTC (rev 67) +++ trunk/src/main/webapp/openSearchResult.jsp 2010-06-08 15:07:02 UTC (rev 68) @@ -24,83 +24,72 @@ <jsp:param name="bowUrl" value="<%=url%>"/> </jsp:include> <body> - <h1 class="result">Results</h1> + <div id="mainbodyback" class="clearfix"> + <div id="mainbody"> - <% if (bookmarkActions != null) { - List<Bookmark> bookmarkList = bookmarkActions.getBookmarks(); - if (!bookmarkList.isEmpty()) { - %> - <table class="result"> - <tr class="result"> - <th class="result"> - Date - <a style="text-decoration:none" href="bow?action=orderAscOS&type=date&searchLine=<%=searchLine%>" > - <IMG style="border:none" SRC="img/asc.png" ALT="order ASC" TITLE="Asc" /> - </a> - <a style="text-decoration:none" href="bow?action=orderDescOS&type=date&searchLine=<%=searchLine%>"> - <IMG style="border:none" SRC="img/desc.png" ALT="order DESC" TITLE="Desc" /> - </a> - </th> - <th class="result"> - Name - <a style="text-decoration:none" href="bow?action=orderAscOS&type=name&searchLine=<%=searchLine%>"> - <IMG style="border:none" SRC="img/asc.png" ALT="order ASC" TITLE="Asc" /> - </a> - <a style="text-decoration:none" href="bow?action=orderDescOS&type=name&searchLine=<%=searchLine%>"> - <IMG style="border:none" SRC="img/desc.png" ALT="order DESC" TITLE="Desc" /> - </a> - </th> - <th class="result">Tags</th> - <th class="result"> - Click - <a style="text-decoration:none" href="bow?action=orderAscOS&type=click&searchLine=<%=searchLine%>"> - <IMG style="border:none" SRC="img/asc.png" ALT="order ASC" TITLE="Asc" /> - </a> - <a style="text-decoration:none" href="bow?action=orderDescOS&type=click&searchLine=<%=searchLine%>"> - <IMG style="border:none" SRC="img/desc.png" ALT="order DESC" TITLE="Desc" /> - </a> - </th> - </tr> - <% - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); - for (Bookmark bookmark : bookmarkList) { - %> - <tr class="result"> - <td class="result"> - <%=sdf.format(bookmark.getDate())%> - </td> - <td class="result"> - <a href="bow?action=addClick&bookmarkId=<%=bookmark.getWikittyId()%>" target="_blank"><%=bookmark.getDescription()%></a> - </td> - <td class="result"> - <% - Set<String> tagList = bookmark.getTags(); - if (tagList != null && !tagList.isEmpty()) { - for (String tag : tagList) { - %> - <%=tag%> - <% - } - %> - </td> - <% - } - %> - <td class="result"> - <%=bookmark.getClick()%> - </td> - </tr> - <% - } - %> - </table> - <% - } else { - %> - <h2 class="result">No Bookmarks found</h2> - <% } - } - %> + <div id="content"> + <div class="menu clearfix"><p>Result</p> + <form method="POST" action="bow?action=orderOS&searchLine=<%=searchLine%>"> + <label>Order By :</label> + <select name="type"> + <option value="ascName">Asc Name</option> + <option value="descName">Desc Name</option> + <option value="ascClick">Asc Click</option> + <option value="descClick">Desc Click</option> + <option value="ascDate">Asc Date</option> + <option value="descDate">Desc Date</option> + </select> + <button type="submit">OK</button> + </form> + </div> + <div id="contenu"> + <% + List<Bookmark> bookmarkList = bookmarkActions.getBookmarks(); + if (!bookmarkList.isEmpty()) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + for (Bookmark bookmark : bookmarkList) { + String link = bookmark.getLink(); + link = link.replace("'", "\\'"); + %> + <body> + <div class="bookmark"> + <div class="bookmarkhead clearfix"> + <a href="<%=url + bookmark.getAlias()%>" title="<%=url + bookmark.getAlias()%>" target="_blank"> + <%=bookmark.getAlias()%> + </a> + <span> (<%=sdf.format(bookmark.getDate())%>)</span> + </div> + <div class="bookmarkcontenu clearfix"> + <div class="screenshot"></div> + <div class="description"> + <h3>Description :</h3> + <p><a title ="<%=bookmark.getLink()%>" href="bow?action=addClick&bookmarkId=<%=bookmark.getWikittyId()%>" target="_blank"><%=bookmark.getDescription()%></a></p> + <p class="tags"><strong>Tags :</strong> + <% + Set<String> tagList = bookmark.getTags(); + if (tagList != null && !tagList.isEmpty()) { + for (String tag : tagList) { + %> + <%=tag%> + <% + } + } + %> + </p> + </div> + <div class="click"><%=bookmark.getClick()%></div> + </div> + </div> + <% + } + } else { + %> + <h2>No Bookmarks</h2> + <%}%> + </div> + </div> + </div> + </div> <jsp:include page="footer.jsp" flush="true" > <jsp:param name="bowUrl" value="<%=url%>" /> <jsp:param name="version" value="<%=version%>" /> Added: trunk/src/main/webapp/preference.jsp =================================================================== --- trunk/src/main/webapp/preference.jsp (rev 0) +++ trunk/src/main/webapp/preference.jsp 2010-06-08 15:07:02 UTC (rev 68) @@ -0,0 +1,34 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@page import="org.chorem.bow.Preference" %> +<% + String error = (String) request.getAttribute("msgError"); + String url = (String) request.getAttribute("bowUrl"); + String version = (String) request.getAttribute("version"); + Preference preference = (Preference) request.getAttribute("preference"); + User user = session.getAttribute("user"); +%> + +<html> + <jsp:include page="header.jsp" flush="true"> + <jsp:param name="bowUrl" value="<%=url%>"/> + </jsp:include> + <body> + <h1 class="login">Login</h1> + <form method="POST" action="bow?action=login"> + email <input type="text" name="email" size="20"> + <br /> + password <input type=password name="password" size="20"> + <br /> + <input type="submit" value="login"> + </form> + <a href="bow?action=registration">register</a> + <br /> + <%if (error != null) {%> + <font color="red"><%=error%></font> + <%}%> + <jsp:include page="footer.jsp" flush="true" > + <jsp:param name="bowUrl" value="<%=url%>" /> + <jsp:param name="version" value="<%=version%>" /> + </jsp:include> + </body> +</html> \ No newline at end of file Added: trunk/src/main/webapp/preferences.jsp =================================================================== --- trunk/src/main/webapp/preferences.jsp (rev 0) +++ trunk/src/main/webapp/preferences.jsp 2010-06-08 15:07:02 UTC (rev 68) @@ -0,0 +1,82 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> + +<%@page import="org.chorem.bow.Preference" %> +<%@page import="org.chorem.bow.User" %> + +<% + User user = (User) session.getAttribute("user"); + Preference preference = (Preference) session.getAttribute("preference"); + if (user != null && preference != null) { + String url = (String) request.getAttribute("bowUrl"); + String version = (String) request.getAttribute("version"); + String check = preference.getColors(); + if (check == null) { + preference.setColors(""); + } + check = preference.getSearchEngineUrlResults(); + if (check == null) { + preference.setSearchEngineUrlResults(""); + } + check = preference.getSearchEngineUrlSuggestions(); + if (check == null) { + preference.setSearchEngineUrlSuggestions(""); + } +%> + +<html> + <head> + <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> + <meta name="description" content="Bookmark On the Web" /> + <title>Bow</title> + <link rel="stylesheet" type="text/css" href="./css/connexion.css" /> + </head> + + <body> + <div id="headback"> + <div id="head"> + <div id="headleft"> + <a class="logo" href="bow">bow</a> + </div> + </div> + </div> + <div id="mainbodyback"> + <div id="mainbody"> + + <div id="content"> + + <form method="POST" action="bow?action=changePreferences"> + + <h1>User Informations</h1> + <p>Email :</p> + <input type="text" name="email" value="<%=user.getEmail()%>"/> + <p>Password :</p> + <input type=password name="password"/> + + <br/> + + <h1>Site look</h1> + <p>Site color</p> + <input type="text" name="colors" value="<%=preference.getColors()%>"/> + <p>Tags number displays in the tag cloud</p> + <input type="text" name="tags" value="<%=preference.getTags()%>"/> + <p>Bookmarks number diplays in the home page</p> + <input type="text" name="bookmarks" value="<%=preference.getBookmarks()%>"/> + <p>Search Engine URL Suggestions</p> + <input type="text" name="searchEngineUrlSuggestions" value="<%=preference.getSearchEngineUrlSuggestions()%>"/> + <p>Search Engine URL Results</p> + <input type="text" name="searchEngineUrlResults" value="<%=preference.getSearchEngineUrlResults()%>"/> + + <button type="submit">Change</button> + </form> + <a href="bow?action=home">Return to the home page</a> + </div> + + </div> + <jsp:include page="footer.jsp" flush="true" > + <jsp:param name="bowUrl" value="<%=url%>" /> + <jsp:param name="version" value="<%=version%>" /> + </jsp:include> + </div> + </body> +</html> +<%}%> \ No newline at end of file Modified: trunk/src/main/webapp/register.jsp =================================================================== --- trunk/src/main/webapp/register.jsp 2010-06-04 13:37:29 UTC (rev 67) +++ trunk/src/main/webapp/register.jsp 2010-06-08 15:07:02 UTC (rev 68) @@ -4,28 +4,49 @@ String url = (String) request.getAttribute("bowUrl"); String version = (String) request.getAttribute("version"); %> + <html> - <jsp:include page="header.jsp" flush="true"> - <jsp:param name="bowUrl" value="<%=url%>"/> - </jsp:include> + <head> + <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> + <meta name="description" content="Bookmark On the Web" /> + <title>Bow</title> + <link rel="stylesheet" type="text/css" href="./css/connexion.css" /> + </head> <body> - <h1 class="login">Register</h1> + <div id="headback"> + <div id="head"> + <div id="headleft"> + <a class="logo" href="bow">bow</a> + </div> + </div> + </div> + <div id="mainbodyback"> + <div id="mainbody"> - <form method="POST" action="bow?action=register"> - email <input type="text" name="email" size="20"> - <br /> - password <input type=password name="password" size="20"> - <br /> - <input type="submit" value="Register"> - </form> - <a href="bow">Return to the login page</a> - <br /> - <%if (error != null && error.isEmpty() == false) {%> - <font color="red"><%=error%></font> - <%}%> - <jsp:include page="footer.jsp" flush="true" > - <jsp:param name="bowUrl" value="<%=url%>" /> - <jsp:param name="version" value="<%=version%>" /> - </jsp:include> + <div id="content"> + + <div id="contenu"> + <h1>Register</h1> + <form method="POST" action="bow?action=register" > + <p>Email :</p> + <input type="text" name="email" /> + <p>Password :</p> + <input type=password name="password" /> + <button>Register</button> + </form> + <a href="bow">Return to the login page</a> + </div> + <br /> + <%if (error != null) {%> + <font color="red"><%=error%></font> + <%}%> + </div> + + </div> + <jsp:include page="footer.jsp" flush="true" > + <jsp:param name="bowUrl" value="<%=url%>" /> + <jsp:param name="version" value="<%=version%>" /> + </jsp:include> + </div> </body> </html> \ No newline at end of file Modified: trunk/src/main/xmi/bow.zargo =================================================================== (Binary files differ)
participants (1)
-
bbrossaud@users.chorem.org