r28 - in trunk/src/main: java/org/chorem/bow webapp webapp/css webapp/img
Author: bbrossaud Date: 2010-05-19 17:58:07 +0200 (Wed, 19 May 2010) New Revision: 28 Url: http://chorem.org/repositories/revision/bow/28 Log: better ergonomy for the search page and amelioration of the opensearch suggestion Added: trunk/src/main/webapp/img/asc.png trunk/src/main/webapp/img/desc.png Removed: trunk/src/main/webapp/generateToken.jsp trunk/src/main/webapp/img/asc.png trunk/src/main/webapp/img/desc.png Modified: trunk/src/main/java/org/chorem/bow/BookmarkActions.java trunk/src/main/java/org/chorem/bow/ControllerServlet.java trunk/src/main/java/org/chorem/bow/OpenSearchActions.java trunk/src/main/webapp/css/styles.css trunk/src/main/webapp/home.jsp trunk/src/main/webapp/img/delete.png trunk/src/main/webapp/openSearchResult.jsp trunk/src/main/webapp/permanentXml.jsp trunk/src/main/webapp/register.jsp trunk/src/main/webapp/search.jsp trunk/src/main/webapp/suggestions.jsp trunk/src/main/webapp/temporaryXml.jsp Modified: trunk/src/main/java/org/chorem/bow/BookmarkActions.java =================================================================== --- trunk/src/main/java/org/chorem/bow/BookmarkActions.java 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/java/org/chorem/bow/BookmarkActions.java 2010-05-19 15:58:07 UTC (rev 28) @@ -99,6 +99,7 @@ tagCloud.clear(); deleteBookmarkBySearch(); createTagClougByBookmarks(); + defineTValues(); } public void deleteBookmarkBySearch() { @@ -206,8 +207,10 @@ public int getFont(int ti) { int font = 1; if (tmax > tmin) { - font = (15 * (ti - tmin)) / (tmax - tmin); // get the font size for a tag frequency + font = (50 * (ti - tmin)) / (tmax - tmin); // get the font size for a tag frequency } + if (font < 10) + font = 10; return font; } Modified: trunk/src/main/java/org/chorem/bow/ControllerServlet.java =================================================================== --- trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-05-19 15:58:07 UTC (rev 28) @@ -10,6 +10,8 @@ */ import java.io.IOException; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -53,7 +55,6 @@ user = checkToken(token, session); } String action = request.getParameter("action"); - response.setContentType("text/html"); if (action != null) { if (action.equals("register")) { if (log.isDebugEnabled()) { @@ -197,16 +198,19 @@ throws IOException, ServletException { if (user != null) { String search = request.getParameter("search"); - log.debug("search={" + search + "}"); if (search != null) { OpenSearchActions openSearchActions = new OpenSearchActions(); WikittyProxy proxy = model.getProxy(); Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(); List<Bookmark> bookList = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); openSearchActions.setBookmarkList(bookList); - search = search.trim(); String[] words = search.split("\\s+"); - openSearchActions.findSuggestions(words); + List<String> searchLine = new ArrayList<String>(Arrays.asList(words)); + if (search.charAt(search.length() - 1) == ' ') { + searchLine.add(""); + } + openSearchActions.findSuggestions(searchLine); + log.debug("result={" + openSearchActions.getJsonResult() + "}"); request.setAttribute("openSearchAction", openSearchActions); } } @@ -441,7 +445,8 @@ protected void actionSearch(HttpServletRequest request, HttpServletResponse response, User user) throws IOException, ServletException { WikittyProxy proxy = model.getProxy(); - Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(); + Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria(). + addSortDescending(Bookmark.FQ_FIELD_CLICK); List<Bookmark> bookList = proxy.findAllByCriteria(Bookmark.class, criteria).getAll(); // select all bookmarks by user createBookmarkActions(request, bookList); } Modified: trunk/src/main/java/org/chorem/bow/OpenSearchActions.java =================================================================== --- trunk/src/main/java/org/chorem/bow/OpenSearchActions.java 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/java/org/chorem/bow/OpenSearchActions.java 2010-05-19 15:58:07 UTC (rev 28) @@ -23,29 +23,30 @@ protected List<Suggestion> suggestions = new ArrayList<Suggestion>(); protected String[] search = null; - public void findSuggestions(String[] words) { - search = words; + public void findSuggestions(List<String> searchLine) { + int size = searchLine.size(); + search = searchLine.toArray(new String[size]); if (!bookmarkList.isEmpty()) { int i; - for (i = 0; i < (words.length - 1); ++i) { + for (i = 0; i < (search.length - 1); ++i) { List<Bookmark> newList = new ArrayList<Bookmark>(bookmarkList); for (Bookmark bookmark : newList) { - if (!bookmarkHasTag(bookmark, words[i])) { + if (!bookmarkHasTag(bookmark, search[i])) { bookmarkList.remove(bookmark); } } } - fieldSuggestionList(words[i]); + fieldSuggestionList(search[i], searchLine); } } - protected void fieldSuggestionList(String word) { + protected void fieldSuggestionList(String word, List<String> searchLine) { if (bookmarkList != null) { Map<String, Integer> map = new HashMap<String, Integer>(); for (Bookmark bookmark : bookmarkList) { Set<String> tagList = bookmark.getTags(); for (String tag : tagList) { - if (tag.indexOf(word) == 0) { + if (tag.indexOf(word) == 0 && !searchLine.contains(tag)) { if (map.containsKey(tag)) { Integer count = map.get(tag); ++count; Modified: trunk/src/main/webapp/css/styles.css =================================================================== --- trunk/src/main/webapp/css/styles.css 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/webapp/css/styles.css 2010-05-19 15:58:07 UTC (rev 28) @@ -1,3 +1,89 @@ -test { +table.result { + border:3px solid #6495ed; + border-collapse:collapse; + width:90%; + margin:auto; +} +th.result { + font-family:monospace; + border:1px dotted #6495ed; + padding:5px; + background-color:#EFF6FF; + width:15%; +} +td.result { + font-family:sans-serif; + font-size:80%; + border:1px solid #6495ed; + padding:5px; + text-align:center; +} +caption { + font-family:sans-serif; +} -} \ No newline at end of file +a.logout { + +} + +div.tagCloud { + background: #EEEEEE 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; + -webkit-border-radius:40px; + -moz-border-radius:40px; + border-radius:40px; +} + +li.search { + display: inline; + margin-left: 5px; + margin-right: 5px; +} + +ul.search { + list-style-type: none; + margin: 0; + padding: 0; + text-align: center; +} + +a.menu { + font-family:monospace; + background-color:#EFF6FF; + color:black; + text-decoration:none; + text-align:center; + padding:5px; + border:2px solid; + /*pour avoir un effet "outset" avec IE :*/ + border-color:#75CEFF #6495ed #6495ed #75CEFF; + +} + +a.menu:hover { + background-color:#D3D3D3; + border-color:#696969 #DCDCDC #DCDCDC #696969; + +} + +a.tag { + font-family:monospace; + color: #EF5252; + margin-left: 2px; + margin-right: 2px; + -webkit-border-radius: 30px; + -moz-border-radius: 30px; + border-radius: 30px; + text-decoration:none; +} +a.tag:hover { + background:#A9BCE1 none repeat scroll 0 0; + color:#FFFFFF; +} Deleted: trunk/src/main/webapp/generateToken.jsp =================================================================== --- trunk/src/main/webapp/generateToken.jsp 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/webapp/generateToken.jsp 2010-05-19 15:58:07 UTC (rev 28) @@ -1,25 +0,0 @@ - -<%@ page import="org.chorem.bow.TokenActions" %> - -<%TokenActions tokenActions = (TokenActions) request.getAttribute("tokenActions"); - String token = tokenActions.getToken(); - if (token != null && token.isEmpty() == false) { -%> - -<html> - <body> - Use it to add new bookmarks without authentication : <br/><br/> - - <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='http://localhost:8080/bow/bow?action=addUrl&token=<%=token%>&url='+encodeURIComponent(url)+'&nameAndTags='+encodeURIComponent(nameAndTags);var%20script=document.createElement('script');script.src=link;script.type='text/javascript';document.body.appendChild(script);">Session</a> - <% - } else { - %> - Token not available, try again later ... - <% - } - %> - - <br/><br/><a href="bow?action=search">Return to the search page</a> - - </body> -</html> \ No newline at end of file Modified: trunk/src/main/webapp/home.jsp =================================================================== --- trunk/src/main/webapp/home.jsp 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/webapp/home.jsp 2010-05-19 15:58:07 UTC (rev 28) @@ -1,9 +1,6 @@ - +<%@page contentType="text/html" pageEncoding="UTF-8"%> <% String error = (String) request.getAttribute("errorMessage"); - String url = request.getRequestURL().toString(); - int index = url.indexOf("home.jsp"); - url = url.substring(0, index); %> <html> Deleted: trunk/src/main/webapp/img/asc.png =================================================================== (Binary files differ) Copied: trunk/src/main/webapp/img/asc.png (from rev 23, trunk/src/main/webapp/img/desc.png) =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/asc.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: svn:mergeinfo + Modified: trunk/src/main/webapp/img/delete.png =================================================================== (Binary files differ) Deleted: trunk/src/main/webapp/img/desc.png =================================================================== (Binary files differ) Copied: trunk/src/main/webapp/img/desc.png (from rev 23, trunk/src/main/webapp/img/asc.png) =================================================================== (Binary files differ) Property changes on: trunk/src/main/webapp/img/desc.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: svn:mergeinfo + Modified: trunk/src/main/webapp/openSearchResult.jsp =================================================================== --- trunk/src/main/webapp/openSearchResult.jsp 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/webapp/openSearchResult.jsp 2010-05-19 15:58:07 UTC (rev 28) @@ -1,15 +1,15 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@page import="org.chorem.bow.Bookmark" %> +<%@page import="org.chorem.bow.BookmarkActions" %> +<%@page import="java.util.HashMap" %> +<%@page import="java.text.SimpleDateFormat" %> +<%@page import="java.util.Iterator" %> +<%@page import="java.util.Map" %> +<%@page import="java.util.Set" %> +<%@page import="java.util.ArrayList" %> +<%@page import="java.util.List" %> +<%@page import="org.chorem.bow.TokenActions" %> -<%@ page import="org.chorem.bow.Bookmark" %> -<%@ page import="org.chorem.bow.BookmarkActions" %> -<%@ page import="java.util.HashMap" %> -<%@ page import="java.text.SimpleDateFormat" %> -<%@ page import="java.util.Iterator" %> -<%@ page import="java.util.Map" %> -<%@ page import="java.util.Set" %> -<%@ page import="java.util.ArrayList" %> -<%@ page import="java.util.List" %> -<%@ page import="org.chorem.bow.TokenActions" %> - <% BookmarkActions bookmarkActions = (BookmarkActions) request.getAttribute("bookmarkActions"); String searchLine = ""; Modified: trunk/src/main/webapp/permanentXml.jsp =================================================================== --- trunk/src/main/webapp/permanentXml.jsp 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/webapp/permanentXml.jsp 2010-05-19 15:58:07 UTC (rev 28) @@ -1,4 +1,5 @@ -<%@ page import="org.chorem.bow.TokenActions" %> +<%@page contentType="text/xml" pageEncoding="UTF-8"%> +<%@page import="org.chorem.bow.TokenActions" %> <% TokenActions tokenActions = (TokenActions) session.getAttribute("tokenActions"); @@ -13,7 +14,7 @@ <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/"> - <ShortName>bowTemporarySearchEngine</ShortName> + <ShortName>bowPermanentSearchEngine</ShortName> <Description>bookmarkSearch</Description> <InputEncoding>inputEncoding</InputEncoding> <Image width="16" height="16">data:image/x-icon;base64,imageData</Image> Modified: trunk/src/main/webapp/register.jsp =================================================================== --- trunk/src/main/webapp/register.jsp 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/webapp/register.jsp 2010-05-19 15:58:07 UTC (rev 28) @@ -1,4 +1,4 @@ - +<%@page contentType="text/html" pageEncoding="UTF-8"%> <%String error = (String) request.getAttribute("errorMessage");%> <html> <body> @@ -12,6 +12,6 @@ <%if (error != null && error.isEmpty() == false) {%> <br/><font color="red"><%=error%></font> <%}%> - <br/><a href="bow?action=home">Return to the login page<a> + <br/><a href="bow?action=home">Return to the login page</a> </body> </html> \ No newline at end of file Modified: trunk/src/main/webapp/search.jsp =================================================================== --- trunk/src/main/webapp/search.jsp 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/webapp/search.jsp 2010-05-19 15:58:07 UTC (rev 28) @@ -1,15 +1,15 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@page import="org.chorem.bow.Bookmark" %> +<%@page import="org.chorem.bow.BookmarkActions" %> +<%@page import="java.util.HashMap" %> +<%@page import="java.text.SimpleDateFormat" %> +<%@page import="java.util.Iterator" %> +<%@page import="java.util.Map" %> +<%@page import="java.util.Set" %> +<%@page import="java.util.ArrayList" %> +<%@page import="java.util.List" %> +<%@page import="org.chorem.bow.TokenActions" %> -<%@ page import="org.chorem.bow.Bookmark" %> -<%@ page import="org.chorem.bow.BookmarkActions" %> -<%@ page import="java.util.HashMap" %> -<%@ page import="java.text.SimpleDateFormat" %> -<%@ page import="java.util.Iterator" %> -<%@ page import="java.util.Map" %> -<%@ page import="java.util.Set" %> -<%@ page import="java.util.ArrayList" %> -<%@ page import="java.util.List" %> -<%@ page import="org.chorem.bow.TokenActions" %> - <% TokenActions tokenActions = (TokenActions) session.getAttribute("tokenActions"); String temporaryToken = tokenActions.getTemporaryToken(); @@ -25,51 +25,51 @@ %> <html> + <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" /> <body> - <a href="bow?action=logout">Logout</a><br/> - <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> - <br/> - <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> - <br/> - <a href="bow?action=generateToken&searchLine=<%=searchLine%>">Regenerate Permanent Token</a><br/><br/> + <ul class="search"> + <li style="display: inline;"><a class="menu" href="bow?action=logout">Logout</a></li> + <li style="display: inline;"><a class="menu" 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 style="display: inline;"><a class="menu" 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 style="display: inline;"><a class="menu" href="bow?action=generateToken&searchLine=<%=searchLine%>">Regenerate permanent token</a></li> + </ul> + <br/><br/> + <div id="searchbox" style="position: absolute; top: 100px; right: 20px;"> + <form method="POST" action="bow?action=addUrl"> + URL <input type="text" name="url" size="20" value="URL" /><br /> + Name and Tags <input type="text" name="nameAndTags" size="20" value="name|tag1 tag2..." /><br /> + <input type="submit" value="add" /> + </form> + </div> - <h1>Search</h1> - - <form method="POST" action="bow?action=addUrl"> - URL <input type="text" name="url" size="20" value="URL" /><br /> - Name and Tags <input type="text" name="nameAndTags" size="20" value="name|tag1 tag2..." /><br /> - <input type="submit" value="add" /> - </form> - - <br/><br/><a href="bow?action=generateToken">Generate Token</a><br/><br/> - - <form method="POST" action="bow?action=search"> - <input type="text" name="searchLine" size="20" value="<%=searchLine%>" /><br /> - <input type="submit" value="Find" /> - </form> - - <% if (bookmarkActions != null) { - Map<String, Integer> tagsCloud = bookmarkActions.getTagsCloud(); - Set<String> tags = tagsCloud.keySet(); - for (String tag : tags) { - int value = tagsCloud.get(tag); - int font = bookmarkActions.getFont(value); - %> - - <FONT SIZE="<%=font%>" ><a href="bow?action=search&addTag=<%=tag%>&searchLine=<%=searchLine%>"><%=tag%></a></FONT> - + <div class="tagCloud"> + <% if (bookmarkActions != null) { + Map<String, Integer> tagsCloud = bookmarkActions.getTagsCloud(); + Set<String> tags = tagsCloud.keySet(); + for (String tag : tags) { + int value = tagsCloud.get(tag); + int font = bookmarkActions.getFont(value); + %> + <a href="bow?action=search&addTag=<%=tag%>&searchLine=<%=searchLine%>" class="tag" style="font-size: <%=font%>px;"><%=tag%></a> + <% + } + %> + </div> <% - } List<Bookmark> bookmarkList = bookmarkActions.getBookmarks(); if (!bookmarkList.isEmpty()) { %> + <form method="POST" action="bow?action=search" style="text-align: left;margin-left: 20px"> + <input type="text" name="searchLine" size="20" value="<%=searchLine%>" /><br /> + <input type="submit" value="Find" /> + </form> <br/><br/>Results:<br/> - <table border="1"> - <tr> - <th>Remove</th> - <th> + <table class="result"> + <tr class="result"> + <th class="result">Remove</th> + <th class="result"> Date <a style="text-decoration:none" href="bow?action=orderAsc&type=date&searchLine=<%=searchLine%>" > <IMG style="border:none" SRC="img/asc.png" ALT="order ASC" TITLE="Asc" /> @@ -78,7 +78,7 @@ <IMG style="border:none" SRC="img/desc.png" ALT="order DESC" TITLE="Desc" /> </a> </th> - <th> + <th class="result"> Name <a style="text-decoration:none" href="bow?action=orderAsc&type=name&searchLine=<%=searchLine%>"> <IMG style="border:none" SRC="img/asc.png" ALT="order ASC" TITLE="Asc" /> @@ -87,9 +87,9 @@ <IMG style="border:none" SRC="img/desc.png" ALT="order DESC" TITLE="Desc" /> </a> </th> - <th>Tags</th> - <th>Edit</th> - <th> + <th class ="result">Tags</th> + <th class="result">Edit</th> + <th class="result"> Click <a style="text-decoration:none" href="bow?action=orderAsc&type=click&searchLine=<%=searchLine%>"> <IMG style="border:none" SRC="img/asc.png" ALT="order ASC" TITLE="Asc" /> @@ -103,40 +103,42 @@ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); for (Bookmark bookmark : bookmarkList) { %> - <tr> - <td> + <tr class="result"> + <td class="result"> <a style="border:none;" href="bow?action=removeBookmark&bookmarkId=<%=bookmark.getWikittyId()%>&searchLine=<%=searchLine%>"> <IMG style="border:none;" SRC="img/remove.png" ALT="Remove bookmark" TITLE="Remove" /> </a> </td> - <td> + <td class="result"> <%=sdf.format(bookmark.getDate())%> </td> - <td> + <td class="result"> <a href="bow?action=addClick&bookmarkId=<%=bookmark.getWikittyId()%>" target="_blank"><%=bookmark.getDescription()%></a> </td> - <td> + <td class="result" style="text-align: left"> <% Set<String> tagList = bookmark.getTags(); if (tagList != null && !tagList.isEmpty()) { for (String tag : tagList) { %> - <%=tag%> - <a style="text-decoration:none" href="bow?action=deleteTag&bookmarkId=<%=bookmark.getWikittyId()%>&deleteTag=<%=tag%>&searchLine=<%=searchLine%>"> - <IMG style="border:none" SRC="img/delete.png" ALT="Delete tag" TITLE="Delete" /> - </a> + <div> + <a style="text-decoration:none" href="bow?action=deleteTag&bookmarkId=<%=bookmark.getWikittyId()%>&deleteTag=<%=tag%>&searchLine=<%=searchLine%>"> + <IMG style="border:none" SRC="img/delete.png" ALT="Delete tag" TITLE="Delete" /> + </a> + <%=tag%> + </div> <% } } %> </td> - <td> + <td class="result"> <form style="display: inline" method="POST" action="bow?action=editBookmark&bookmarkId=<%=bookmark.getWikittyId()%>&searchLine=<%=searchLine%>"> <input type="text" name="nameAndTags" size="50" value="<%=bookmark.getDescription()%>|tag1 tag2 tag3" /> <input type="image" src="img/edit.png" title="Edit"/> </form> </td> - <td> + <td class="result"> <%=bookmark.getClick()%> </td> <% Modified: trunk/src/main/webapp/suggestions.jsp =================================================================== --- trunk/src/main/webapp/suggestions.jsp 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/webapp/suggestions.jsp 2010-05-19 15:58:07 UTC (rev 28) @@ -1,4 +1,4 @@ - +<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@page import="org.chorem.bow.OpenSearchActions" %> <%@page import="org.chorem.bow.Suggestion" %> <%@page import="java.util.List" %> Modified: trunk/src/main/webapp/temporaryXml.jsp =================================================================== --- trunk/src/main/webapp/temporaryXml.jsp 2010-05-18 15:26:01 UTC (rev 27) +++ trunk/src/main/webapp/temporaryXml.jsp 2010-05-19 15:58:07 UTC (rev 28) @@ -1,4 +1,5 @@ -<%@ page import="org.chorem.bow.TokenActions" %> +<%@page contentType="text/xml" pageEncoding="UTF-8"%> +<%@page import="org.chorem.bow.TokenActions" %> <% TokenActions tokenActions = (TokenActions) session.getAttribute("tokenActions");
participants (1)
-
bbrossaudï¼ users.chorem.org