Bow-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
December 2010
- 4 participants
- 28 discussions
Author: bpoussin
Date: 2010-12-23 11:39:17 +0100 (Thu, 23 Dec 2010)
New Revision: 146
Url: http://chorem.org/repositories/revision/bow/146
Log:
[maven-release-plugin] prepare release bow-0.3
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-12-23 10:37:22 UTC (rev 145)
+++ trunk/pom.xml 2010-12-23 10:39:17 UTC (rev 146)
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -17,7 +15,7 @@
<groupId>org.chorem</groupId>
<artifactId>bow</artifactId>
- <version>0.3-SNAPSHOT</version>
+ <version>0.3</version>
<dependencies>
@@ -116,11 +114,11 @@
</dependencies>
<scm>
- <connection>scm:svn:http://svn.chorem.org/svn/bow/trunk</connection>
+ <connection>scm:svn:http://svn.chorem.org/svn/bow/tags/bow-0.3</connection>
<developerConnection>
- scm:svn:http://svn.chorem.org/svn/bow/trunk
+ scm:svn:http://svn.chorem.org/svn/bow/tags/bow-0.3
</developerConnection>
- <url>http://www.chorem.org/repositories/browse/bow/trunk</url>
+ <url>http://www.chorem.org/repositories/browse/bow/tags/bow-0.3</url>
</scm>
<!-- ************************************************************* -->
1
0
r145 - in trunk: . src/main/webapp/extensions/chromium src/site/rst/user
by bpoussin@users.chorem.org 23 Dec '10
by bpoussin@users.chorem.org 23 Dec '10
23 Dec '10
Author: bpoussin
Date: 2010-12-23 11:37:22 +0100 (Thu, 23 Dec 2010)
New Revision: 145
Url: http://chorem.org/repositories/revision/bow/145
Log:
add header license
Modified:
trunk/TODO.txt
trunk/src/main/webapp/extensions/chromium/background.html
trunk/src/main/webapp/extensions/chromium/popup.html
trunk/src/site/rst/user/preferences.rst
trunk/src/site/rst/user/user.rst
Property changes on: trunk/TODO.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/src/main/webapp/extensions/chromium/background.html
===================================================================
--- trunk/src/main/webapp/extensions/chromium/background.html 2010-12-23 10:24:48 UTC (rev 144)
+++ trunk/src/main/webapp/extensions/chromium/background.html 2010-12-23 10:37:22 UTC (rev 145)
@@ -1,3 +1,26 @@
+<!--
+ #%L
+ bow
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2010 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ -->
<html>
<head>
<script>
Modified: trunk/src/main/webapp/extensions/chromium/popup.html
===================================================================
--- trunk/src/main/webapp/extensions/chromium/popup.html 2010-12-23 10:24:48 UTC (rev 144)
+++ trunk/src/main/webapp/extensions/chromium/popup.html 2010-12-23 10:37:22 UTC (rev 145)
@@ -1,3 +1,26 @@
+<!--
+ #%L
+ bow
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2010 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ -->
<html>
<head>
<script>
Modified: trunk/src/site/rst/user/preferences.rst
===================================================================
--- trunk/src/site/rst/user/preferences.rst 2010-12-23 10:24:48 UTC (rev 144)
+++ trunk/src/site/rst/user/preferences.rst 2010-12-23 10:37:22 UTC (rev 145)
@@ -1,3 +1,26 @@
+.. -
+.. * #%L
+.. * bow
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Affero General Public License as published by
+.. * the Free Software Foundation, either version 3 of the License, or
+.. * (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Public License for more details.
+.. *
+.. * You should have received a copy of the GNU Affero General Public License
+.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
+.. * #L%
+.. -
===========
Préférences
===========
Modified: trunk/src/site/rst/user/user.rst
===================================================================
--- trunk/src/site/rst/user/user.rst 2010-12-23 10:24:48 UTC (rev 144)
+++ trunk/src/site/rst/user/user.rst 2010-12-23 10:37:22 UTC (rev 145)
@@ -1,3 +1,26 @@
+.. -
+.. * #%L
+.. * bow
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Affero General Public License as published by
+.. * the Free Software Foundation, either version 3 of the License, or
+.. * (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Public License for more details.
+.. *
+.. * You should have received a copy of the GNU Affero General Public License
+.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
+.. * #L%
+.. -
Documentation utilisateur
=========================
1
0
23 Dec '10
Author: bpoussin
Date: 2010-12-23 11:24:48 +0100 (Thu, 23 Dec 2010)
New Revision: 144
Url: http://chorem.org/repositories/revision/bow/144
Log:
add svn:keywords
Modified:
trunk/LICENSE.txt
trunk/README.txt
trunk/changelog.txt
trunk/pom.xml
trunk/src/license/THIRD-PARTY.properties
trunk/src/main/java/org/chorem/bow/AliasServlet.java
trunk/src/main/java/org/chorem/bow/BookmarkActions.java
trunk/src/main/java/org/chorem/bow/BowConfig.java
trunk/src/main/java/org/chorem/bow/BowProxy.java
trunk/src/main/java/org/chorem/bow/ControllerServlet.java
trunk/src/main/java/org/chorem/bow/OpenSearchActions.java
trunk/src/main/java/org/chorem/bow/SuggestionsComparator.java
trunk/src/main/java/org/chorem/bow/TokenActions.java
trunk/src/main/java/org/chorem/bow/UserMigration.java
trunk/src/main/resources/bow.properties
trunk/src/main/resources/log4j.properties
trunk/src/main/resources/wikitty-jdbc-config.properties
trunk/src/main/webapp/WEB-INF/web.xml
trunk/src/main/webapp/admin.jsp
trunk/src/main/webapp/bookmark.jsp
trunk/src/main/webapp/bookmarkTop.jsp
trunk/src/main/webapp/css/bookmark.css
trunk/src/main/webapp/css/connexion.css
trunk/src/main/webapp/css/global.css
trunk/src/main/webapp/error.jsp
trunk/src/main/webapp/errorFrame.jsp
trunk/src/main/webapp/extensions/bow4chromium.crx
trunk/src/main/webapp/extensions/bow4chromium.pem
trunk/src/main/webapp/extensions/chromium/_locales/en/messages.json
trunk/src/main/webapp/extensions/chromium/_locales/fr/messages.json
trunk/src/main/webapp/extensions/chromium/background.html
trunk/src/main/webapp/extensions/chromium/bow.crx
trunk/src/main/webapp/extensions/chromium/favicon.png
trunk/src/main/webapp/extensions/chromium/fdboutonV.jpg
trunk/src/main/webapp/extensions/chromium/fondconnexion.jpg
trunk/src/main/webapp/extensions/chromium/fondhead.jpg
trunk/src/main/webapp/extensions/chromium/logobow.jpg
trunk/src/main/webapp/extensions/chromium/manifest.json
trunk/src/main/webapp/extensions/chromium/moyen-livre.jpg
trunk/src/main/webapp/extensions/chromium/options.css
trunk/src/main/webapp/extensions/chromium/options.html
trunk/src/main/webapp/extensions/chromium/popup.html
trunk/src/main/webapp/extensions/chromium/ptit-livre.jpg
trunk/src/main/webapp/footer.jsp
trunk/src/main/webapp/forgotPassword.jsp
trunk/src/main/webapp/header.jsp
trunk/src/main/webapp/home.jsp
trunk/src/main/webapp/img/aide.jpg
trunk/src/main/webapp/img/asc.png
trunk/src/main/webapp/img/bow.gif
trunk/src/main/webapp/img/chromium.png
trunk/src/main/webapp/img/click.jpg
trunk/src/main/webapp/img/croix.jpg
trunk/src/main/webapp/img/croixtr.png
trunk/src/main/webapp/img/delete.png
trunk/src/main/webapp/img/desc.png
trunk/src/main/webapp/img/edit.jpg
trunk/src/main/webapp/img/edit.png
trunk/src/main/webapp/img/favicon.png
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/remove.png
trunk/src/main/webapp/img/tag.jpg
trunk/src/main/webapp/login.jsp
trunk/src/main/webapp/permanentXml.jsp
trunk/src/main/webapp/preferences.jsp
trunk/src/main/webapp/register.jsp
trunk/src/main/webapp/rightMenu.jsp
trunk/src/main/webapp/search.jsp
trunk/src/main/webapp/suggestions.jsp
trunk/src/main/webapp/tagsCloud.jsp
trunk/src/main/webapp/temporaryXml.jsp
trunk/src/main/xmi/bow.zargo
trunk/src/site/rst/developper/installation.rst
trunk/src/site/rst/developper/presentation.rst
trunk/src/site/rst/index.rst
trunk/src/site/rst/todo.rst
trunk/src/site/rst/user/addBookmark.rst
trunk/src/site/rst/user/alias.rst
trunk/src/site/rst/user/importExport.rst
trunk/src/site/rst/user/openSearch.rst
trunk/src/site/rst/user/preferences.rst
trunk/src/site/rst/user/search.rst
trunk/src/site/rst/user/user.rst
trunk/src/site/site.xml
Property changes on: trunk/LICENSE.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/README.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/changelog.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/pom.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/license/THIRD-PARTY.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/java/org/chorem/bow/AliasServlet.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/java/org/chorem/bow/BookmarkActions.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/java/org/chorem/bow/BowConfig.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/java/org/chorem/bow/BowProxy.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/java/org/chorem/bow/ControllerServlet.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/java/org/chorem/bow/OpenSearchActions.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/java/org/chorem/bow/SuggestionsComparator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/java/org/chorem/bow/TokenActions.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/java/org/chorem/bow/UserMigration.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/resources/bow.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/resources/log4j.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/resources/wikitty-jdbc-config.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/WEB-INF/web.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/admin.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/bookmark.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/bookmarkTop.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/css/bookmark.css
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/css/connexion.css
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/css/global.css
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/error.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/errorFrame.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/bow4chromium.crx
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/bow4chromium.pem
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/_locales/en/messages.json
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/_locales/fr/messages.json
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/background.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/bow.crx
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/favicon.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/fdboutonV.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/fondconnexion.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/fondhead.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/logobow.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/manifest.json
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/moyen-livre.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/options.css
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/options.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/popup.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/extensions/chromium/ptit-livre.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/footer.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/forgotPassword.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/header.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/home.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/aide.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/asc.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/bow.gif
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/chromium.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/click.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/croix.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/croixtr.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/delete.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/desc.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/edit.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/edit.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/favicon.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/fdboutonV.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/fondbouton.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/fondconnexion.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/fondhead.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/livreG.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/logobow.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/moyen-livre.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/piedmenu.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/pointemenu.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/ptit-livre.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/remove.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/img/tag.jpg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/login.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/permanentXml.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/preferences.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/register.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/rightMenu.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/search.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/suggestions.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/tagsCloud.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/webapp/temporaryXml.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/main/xmi/bow.zargo
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/rst/developper/installation.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/rst/developper/presentation.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/rst/index.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/rst/todo.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/rst/user/addBookmark.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/rst/user/alias.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/rst/user/importExport.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/rst/user/openSearch.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/rst/user/preferences.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/rst/user/search.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/rst/user/user.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/site.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
r143 - in trunk/src/main/webapp/extensions: . chromium/_locales chromium/_locales/en chromium/_locales/fr
by kmorin@users.chorem.org 22 Dec '10
by kmorin@users.chorem.org 22 Dec '10
22 Dec '10
Author: kmorin
Date: 2010-12-22 19:28:57 +0100 (Wed, 22 Dec 2010)
New Revision: 143
Url: http://chorem.org/repositories/revision/bow/143
Log:
- add missing files for the chromium extension
Added:
trunk/src/main/webapp/extensions/bow4chromium.crx
trunk/src/main/webapp/extensions/bow4chromium.pem
trunk/src/main/webapp/extensions/chromium/_locales/en/
trunk/src/main/webapp/extensions/chromium/_locales/en/messages.json
trunk/src/main/webapp/extensions/chromium/_locales/fr/
trunk/src/main/webapp/extensions/chromium/_locales/fr/messages.json
Added: trunk/src/main/webapp/extensions/bow4chromium.crx
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/extensions/bow4chromium.crx
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/webapp/extensions/bow4chromium.pem
===================================================================
--- trunk/src/main/webapp/extensions/bow4chromium.pem (rev 0)
+++ trunk/src/main/webapp/extensions/bow4chromium.pem 2010-12-22 18:28:57 UTC (rev 143)
@@ -0,0 +1,16 @@
+-----BEGIN PRIVATE KEY-----
+MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKpiR1Q4LSM+VsHQY
+lSXoJlltVAlikujpb1rokmyTAgkCakd3kmUWUETQbTsvv2PNjn0vwNUuNXdi4R45X
+iU6HxJ2ooDJ0bTQXRmvB9a5nqDFriZpFTvErqeZwVmJQTSvohGGMNw6F0UMOMXERe
+PRWuHS1/JkfzqLJ3qUpRUmL7NAgMBAAECgYADhH3mfjZoWNwfqjatemflYtUob234
+e8trKrKyBM1PCbdtV2GEcVyaXFRp8M1MnM1IywW6guBCAg3kUT6ji6d1CMklSHmFa
+H2jvvZSuXWIm8ToTMylxPbooSNGw5aCB+L1mQ5ADnKxb5r4PZ2omMsx/ALg3ILdOX
+qeIzrVHzOngQJBAN6uBidQJxmanxNgGypoz544fMu0UbxGdZHuKLUKQWJMn5lawYo
+730LsDxLozofH16ZrBvfPRUqGEWwkDp4jYq0CQQDD4QHxouyi8AMwiClQy/zDqKyg
+6mr1XajAzmc39Y+14vbc1ICKAjmlS6s5uP1zACyH+Vi+5EHe4FSEDYiLXHChAkAkc
+A2JuU/snKSTIxLO6b+vgEbLfoIxcMYkTvhSR49Tan5jNbqdyBZMeRwuV/ITvdvH25
+OUUVJhU3beXzgVIG0xAkEAmLedZF+6T28BjZ0bWTsxXvrrXKpnqdXT9D74itCRsyW
+5goLLlM4XU6CjZuWr9TV1gq4NWwdrs/EC89H5W24/AQJBANIrMnqdFwSDcviRKlyg
+rKhtkt5Txd4lVt8PGQi/d4RIJJ0rSEd5/DFXdhQM8tWDHSYspaxJQEqak0bzvFFMN
+uQ=
+-----END PRIVATE KEY-----
Added: trunk/src/main/webapp/extensions/chromium/_locales/en/messages.json
===================================================================
--- trunk/src/main/webapp/extensions/chromium/_locales/en/messages.json (rev 0)
+++ trunk/src/main/webapp/extensions/chromium/_locales/en/messages.json 2010-12-22 18:28:57 UTC (rev 143)
@@ -0,0 +1,91 @@
+{
+ "extensionName": {
+ "message": "BOW extension",
+ "description": "extension name"
+ },
+
+ "extensionDescription": {
+ "message": "BOW extension",
+ "description": "extension description"
+ },
+
+ "actionTitle": {
+ "message": "Bookmark this page in BOW",
+ "description": "action title"
+ },
+
+ "nameInputLabel": {
+ "message": "Name:",
+ "description": "label for name input"
+ },
+
+ "aliasInputLabel": {
+ "message": "Alias:",
+ "description": "label for alias input"
+ },
+
+ "tagsInputLabel": {
+ "message": "Tags:",
+ "description": "label for tags input"
+ },
+
+ "permanentTokenButton": {
+ "message": "Permanent token",
+ "description": "button to bookmark the page using the permanent token"
+ },
+
+ "emptyPermanentTokenMessage": {
+ "message": "You did not add your permanent token in the options. Please add it to be able to add bookmarks or use a session token.",
+ "description": "message when the user tries to ad bokkmark using his permanent token, but did not add it in the option"
+ },
+
+ "sessionTokenButton": {
+ "message": "Session token",
+ "description": "button to bookmark the page using the session token"
+ },
+
+ "noTokenMessage": {
+ "message": "You need to add either your permanent token or a session to token to be able to add a page in your BOW bookmarks.",
+ "description": "message displayed instead of the buttons when the user did not add his token ids"
+ },
+
+ "optionTitle": {
+ "message": "Options:",
+ "description": "option title"
+ },
+
+ "sessionTokenIdInputLabel": {
+ "message": "Session token ID:",
+ "description": "label for session token ID input"
+ },
+
+ "permanentTokenIdInputLabel": {
+ "message": "Permanent token ID:",
+ "description": "label for permanent token ID input"
+ },
+
+ "saveOptionButton": {
+ "message": "Save",
+ "description": "button to save options"
+ },
+
+ "licenseLink": {
+ "message": "AGPL license",
+ "description": "link to the license"
+ },
+
+ "bugReport": {
+ "message": "Bug report",
+ "description": "link to the bug report"
+ },
+
+ "userSupport": {
+ "message": "User support",
+ "description": "link to the user support"
+ },
+
+ "optionSavedMessage": {
+ "message": "Your options have been saved.",
+ "description": "message displayed when the user saves his options"
+ }
+}
Added: trunk/src/main/webapp/extensions/chromium/_locales/fr/messages.json
===================================================================
--- trunk/src/main/webapp/extensions/chromium/_locales/fr/messages.json (rev 0)
+++ trunk/src/main/webapp/extensions/chromium/_locales/fr/messages.json 2010-12-22 18:28:57 UTC (rev 143)
@@ -0,0 +1,86 @@
+{
+ "extensionName" : {
+ "message" : "Extension pour BOW",
+ "description" : "nom de l'extension"
+ },
+
+ "extensionDescription" : {
+ "message" : "Extension pour BOW",
+ "description" : "description de l'extension"
+ },
+
+ "actionTitle" : {
+ "message" : "Bookmarker cette page dans BOW",
+ "description" : "titre de l'action"
+ },
+
+ "nameInputLabel" : {
+ "message" : "Nom :",
+ "description" : "label pour l'input du nom"
+ },
+
+ "aliasInputLabel" : {
+ "message" : "Alias :",
+ "description" : "label pour l'input de l'alias"
+ },
+
+ "tagsInputLabel" : {
+ "message" : "Tags :",
+ "description" : "label pour l'input des tags"
+ },
+
+ "permanentTokenButton": {
+ "message": "Token permanent",
+ "description": "bouton pour bookmarker la page avec le token permanent"
+ },
+
+ "sessionTokenButton": {
+ "message": "Token de session",
+ "description": "bouton pour bookmarker la page avec le token de session"
+ },
+
+ "noTokenMessage": {
+ "message": "Vous devez renseigner votre identifiant de token permanent ou de token de session pour pouvoir bookmarker cette page dans BOW.",
+ "description": "message affiché à la place des boutons quand l'utilisateur n'a pas entré ses token ids"
+ },
+
+ "optionTitle" : {
+ "message" : "Options :",
+ "description" : "titre des options"
+ },
+
+ "sessionTokenIdInputLabel" : {
+ "message" : "Id du token de session :",
+ "description" : "label pour l'input de l'id du token de session"
+ },
+
+ "permanentTokenIdInputLabel" : {
+ "message" : "Id du token permanent :",
+ "description" : "label pour l'input de l'id du token permanent"
+ },
+
+ "saveOptionButton" : {
+ "message" : "Enregistrer",
+ "description" : "bouton d'enregistrement des options"
+ },
+
+ "licenseLink" : {
+ "message" : "Licence AGPL",
+ "description" : "lien vers la licence"
+ },
+
+ "bugReport" : {
+ "message" : "Rapport de bug",
+ "description" : "lien vers le rapport de bug"
+ },
+
+ "userSupport" : {
+ "message" : "Support utilisateur",
+ "description" : "lien vers le support utilisateur"
+ },
+
+ "optionSavedMessage": {
+ "message": "Vos options ont été enregistrées.",
+ "description": "message affiché quand l'utilisateur a enregistré ses options"
+ }
+}
1
0
Author: kmorin
Date: 2010-12-22 10:59:20 +0100 (Wed, 22 Dec 2010)
New Revision: 142
Url: http://chorem.org/repositories/revision/bow/142
Log:
- add link to download chromium extension
Added:
trunk/src/main/webapp/img/chromium.png
Modified:
trunk/src/main/webapp/css/bookmark.css
trunk/src/main/webapp/rightMenu.jsp
Modified: trunk/src/main/webapp/css/bookmark.css
===================================================================
--- trunk/src/main/webapp/css/bookmark.css 2010-12-22 08:17:36 UTC (rev 141)
+++ trunk/src/main/webapp/css/bookmark.css 2010-12-22 09:59:20 UTC (rev 142)
@@ -271,6 +271,23 @@
text-decoration:underline;
}
+#colonneD #extensions h2 {
+ margin: 4% 0 0 10%;
+}
+
+#colonneD #extensions li {
+ padding-bottom: 10px;
+}
+
+#colonneD #extensions .extensionIcon {
+ float: left;
+}
+
+#colonneD #extensions .extensionName {
+ padding: 4px 0 0 30px;
+}
+
+
#colonneD #nuage,
#colonneD .recherche,
#colonneD #import,
Added: trunk/src/main/webapp/img/chromium.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/img/chromium.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/webapp/rightMenu.jsp
===================================================================
--- trunk/src/main/webapp/rightMenu.jsp 2010-12-22 08:17:36 UTC (rev 141)
+++ trunk/src/main/webapp/rightMenu.jsp 2010-12-22 09:59:20 UTC (rev 142)
@@ -79,7 +79,7 @@
<input type="submit" value="Logout" />
</div>
</form>
- <a href="http://maven-site.chorem.org/bow/" class="help">Aide</a>
+ <a href="http://maven-site.chorem.org/bow/" class="help" target="blank">Aide</a>
</div>
<div id="side">
<div id="colonneD">
@@ -91,6 +91,14 @@
<li><a title="Add this link to your favourites to bookmark others in the future. This link is just available while you are connected on the site!" 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%>?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);">Bookmark add link (session)</a></li>
<li><a title="Add this link to your favourites to bookmark others in the future. This link is always available!" 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%>?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);">Bookmark add link (permanent)</a></li>
</ul>
+ <div id="extensions">
+ <h2>Extensions</h2>
+ <ul class="droite">
+ <li><a href="extensions/bow4chromium.crx"><img src="img/chromium.png" class="extensionIcon" /><div class="extensionName">Extension pour Chromium</div></a></li>
+ <li><strong>Permanent token id:</strong> <%= permanentToken %></li>
+ <li><strong>Session token id:</strong> <%= temporaryToken %></li>
+ </ul>
+ </div>
<div id="add" class="clearfix">
<h2>Add / Modify</h2>
<form id="bookmarkForm" method="post" action="<%=formAction%>">
1
0
r141 - in trunk/src/main/webapp: . extensions extensions/chromium
by kmorin@users.chorem.org 22 Dec '10
by kmorin@users.chorem.org 22 Dec '10
22 Dec '10
Author: kmorin
Date: 2010-12-22 09:17:36 +0100 (Wed, 22 Dec 2010)
New Revision: 141
Url: http://chorem.org/repositories/revision/bow/141
Log:
- add chromium extension
- readd the question mark
Added:
trunk/src/main/webapp/extensions/
trunk/src/main/webapp/extensions/chromium/
trunk/src/main/webapp/extensions/chromium/_locales/
trunk/src/main/webapp/extensions/chromium/background.html
trunk/src/main/webapp/extensions/chromium/bow.crx
trunk/src/main/webapp/extensions/chromium/favicon.png
trunk/src/main/webapp/extensions/chromium/fdboutonV.jpg
trunk/src/main/webapp/extensions/chromium/fondconnexion.jpg
trunk/src/main/webapp/extensions/chromium/fondhead.jpg
trunk/src/main/webapp/extensions/chromium/logobow.jpg
trunk/src/main/webapp/extensions/chromium/manifest.json
trunk/src/main/webapp/extensions/chromium/moyen-livre.jpg
trunk/src/main/webapp/extensions/chromium/options.css
trunk/src/main/webapp/extensions/chromium/options.html
trunk/src/main/webapp/extensions/chromium/popup.html
trunk/src/main/webapp/extensions/chromium/ptit-livre.jpg
Modified:
trunk/src/main/webapp/rightMenu.jsp
Added: trunk/src/main/webapp/extensions/chromium/background.html
===================================================================
--- trunk/src/main/webapp/extensions/chromium/background.html (rev 0)
+++ trunk/src/main/webapp/extensions/chromium/background.html 2010-12-22 08:17:36 UTC (rev 141)
@@ -0,0 +1,22 @@
+<html>
+ <head>
+ <script>
+ var tabTitle;
+ var tabUrl;
+
+ // Called when the url of a tab changes.
+ function showAction(tabId, changeInfo, tab) {
+ // If the letter 'g' is found in the tab's URL...
+ // ... show the page action.
+ chrome.pageAction.show(tabId);
+ tabTitle = tab.title;
+ tabUrl = tab.url;
+ };
+
+ // Listen for any changes to the URL of any tab.
+ chrome.tabs.onUpdated.addListener(showAction);
+
+ </script>
+ </head>
+</html>
+
Added: trunk/src/main/webapp/extensions/chromium/bow.crx
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/extensions/chromium/bow.crx
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/webapp/extensions/chromium/favicon.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/extensions/chromium/favicon.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/webapp/extensions/chromium/fdboutonV.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/extensions/chromium/fdboutonV.jpg
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/webapp/extensions/chromium/fondconnexion.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/extensions/chromium/fondconnexion.jpg
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/webapp/extensions/chromium/fondhead.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/extensions/chromium/fondhead.jpg
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/webapp/extensions/chromium/logobow.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/extensions/chromium/logobow.jpg
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/webapp/extensions/chromium/manifest.json
===================================================================
--- trunk/src/main/webapp/extensions/chromium/manifest.json (rev 0)
+++ trunk/src/main/webapp/extensions/chromium/manifest.json 2010-12-22 08:17:36 UTC (rev 141)
@@ -0,0 +1,23 @@
+{
+ "name": "__MSG_extensionName__",
+ "version": "1.0",
+ "default_locale": "en",
+
+ "description": "__MSG_extensionDescription__",
+ "icons": { "16": "ptit-livre.jpg",
+ "48": "moyen-livre.jpg",
+ "128": "moyen-livre.jpg" },
+
+ "page_action": {
+ "default_title": "__MSG_actionTitle__",
+ "default_icon": "favicon.png",
+ "default_popup": "popup.html"
+ },
+
+ "background_page": "background.html",
+ "options_page": "options.html",
+ "homepage_url": "http://www.codelutin.com",
+ "permissions": [
+ "tabs", "http://*/*", "https://*/*"
+ ]
+}
Added: trunk/src/main/webapp/extensions/chromium/moyen-livre.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/extensions/chromium/moyen-livre.jpg
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/webapp/extensions/chromium/options.css
===================================================================
--- trunk/src/main/webapp/extensions/chromium/options.css (rev 0)
+++ trunk/src/main/webapp/extensions/chromium/options.css 2010-12-22 08:17:36 UTC (rev 141)
@@ -0,0 +1,188 @@
+/*
+ * #%L
+ * bow
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+@charset "utf-8";
+/* CSS Document */
+*{
+ padding:0;
+ margin:0;
+}
+
+body{
+ font-size:10px;
+ font-family:Verdana, Arial, Helvetica, sans-serif;
+}
+
+.clearfix{
+ height:1%;
+}
+
+.clearfix:after{
+ content:".";
+ height:0;
+ line-height:0;
+ display:block;
+ visibility:hidden;
+ clear:both;
+}
+
+#wrap{
+ clear:both;
+ float:left;
+ overflow-x:hidden;
+ overflow-y:visible;
+ position:relative;
+ width:100%;
+ background-color:#9EDCF8;
+}
+
+#main div[class="menu clearfix"] h2{
+ color:#9edcf8;
+ font-size:18px;
+ font-weight:normal;
+ float:left;
+}
+
+#main .menu form{
+ float:right;
+ color:#9edcf8;
+ font-size:12px;
+}
+
+#footer{
+ background-color:#804561;
+ padding-top:30px;
+}
+
+#footer a{
+ color:#bf8a9c;
+}
+
+#footer p{
+ font-size:14px;
+ text-align:center;
+ line-height:50px;
+}
+
+#header{
+ background:#FFFFFF url('fondhead.jpg') repeat-x;
+ width:100%;
+ float:left;
+ height:100px;
+ clear:both;
+ margin:0 auto;
+ position: relative;
+}
+
+#header a.logo{
+ background:url(logobow.jpg);
+ width:290px;
+ height:100px;
+ text-indent:-99999px;
+ display:block;
+}
+
+#main{
+ width:1004px;
+ margin:0 auto;
+ position:relative;
+ clear:both;
+}
+
+#main .menu{
+ margin-top: 25px;
+}
+
+#page {
+ width:100%;
+ margin:0 auto;
+ clear:both;
+}
+
+#content{
+ width:1004px;
+ position:relative;
+ margin:0 auto;
+ padding-top:20px;
+}
+
+#formFrame{
+ width:225px;
+ height:315px;
+ background:url('fondconnexion.jpg') no-repeat;
+ position:relative;
+ margin:100px auto;
+ padding:10px 70px;
+}
+
+#formFrame h1{
+ color:#804561;
+ width:225px;
+ position:relative;
+ margin:15px auto;
+}
+
+#formFrame div div{
+ color:#804561;
+ font-size:16px;
+ font-weight:bold;
+ width:225px;
+}
+
+.label {
+ margin-top:30px;
+}
+
+.buttons {
+ margin-top:30px;
+}
+
+#formFrame input[type="text"]{
+ width:225px;
+}
+
+#formFrame a{
+ position: absolute;
+ color:#804561;
+ left:75px;
+ font-weight:bold;
+ font-size: 12px;
+}
+
+#formFrame #register{
+ bottom:50px;
+ font-size:14px;
+}
+
+button {
+ float:right;
+ margin-top:20px;
+ background:url('fdboutonV.jpg') repeat-x;
+ height:31px;
+ color:#FFFFFF;
+ font-weight:bold;
+ border:none;
+ width:auto;
+ padding: 5px;
+ cursor:pointer;
+}
Added: trunk/src/main/webapp/extensions/chromium/options.html
===================================================================
--- trunk/src/main/webapp/extensions/chromium/options.html (rev 0)
+++ trunk/src/main/webapp/extensions/chromium/options.html 2010-12-22 08:17:36 UTC (rev 141)
@@ -0,0 +1,131 @@
+<!--
+ #%L
+ bow
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2010 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <meta name="description" content="Bookmarks On the Web" />
+ <title>BOW Extension Options</title>
+ <link rel="icon" type="image/png" href="favicon.png" />
+ <link rel="stylesheet" type="text/css" href="options.css" />
+ <script type="text/javascript">
+ <!--
+ // Saves options to localStorage.
+ function save_options() {
+ var permanentTokenIdInput = document.getElementById("permanentTokenIdInput");
+ var permanentTokenId = permanentTokenIdInput.value;
+ localStorage["permanentTokenId"] = permanentTokenId;
+
+ var sessionTokenIdInput = document.getElementById("sessionTokenIdInput");
+ var sessionTokenId = sessionTokenIdInput.value;
+ localStorage["sessionTokenId"] = sessionTokenId;
+
+ alert(chrome.i18n.getMessage("optionSavedMessage"));
+ }
+
+ // Restores select box state to saved value from localStorage.
+ function restore_options() {
+ var permanentTokenId = localStorage["permanentTokenId"];
+ var sessionTokenId = localStorage["sessionTokenId"];
+
+ var permanentTokenIdInputLabel = document.getElementById("permanentTokenIdInputLabel");
+ permanentTokenIdInputLabel.innerHTML = chrome.i18n.getMessage("permanentTokenIdInputLabel");
+
+ if (permanentTokenId) {
+ var permanentTokenIdInput = document.getElementById("permanentTokenIdInput");
+ permanentTokenIdInput.value = permanentTokenId;
+ }
+
+ var sessionTokenIdInputLabel = document.getElementById("sessionTokenIdInputLabel");
+ sessionTokenIdInputLabel.innerHTML = chrome.i18n.getMessage("sessionTokenIdInputLabel");
+
+ if (sessionTokenId) {
+ var sessionTokenIdInput = document.getElementById("sessionTokenIdInput");
+ sessionTokenIdInput.value = sessionTokenId;
+ }
+
+ var title = document.getElementById("title");
+ title.innerHTML = chrome.i18n.getMessage("optionTitle");
+
+ var saveOptionButton = document.getElementById("saveOptionButton");
+ saveOptionButton.innerHTML = chrome.i18n.getMessage("saveOptionButton");
+
+ var licenseLink = document.getElementById("licenseLink");
+ licenseLink.innerHTML = chrome.i18n.getMessage("licenseLink");
+
+ var bugReport = document.getElementById("bugReport");
+ bugReport.innerHTML = chrome.i18n.getMessage("bugReport");
+
+ var userSupport = document.getElementById("userSupport");
+ userSupport.innerHTML = chrome.i18n.getMessage("userSupport");
+
+ }
+ //-->
+ </script>
+</head>
+<body onload="restore_options()">
+ <div id="wrap">
+ <div id="page">
+ <div id="header">
+ <a class="logo" href="http://bow.chorem.org">bow</a>
+ </div>
+ <div id="main">
+ <div id="content">
+ <div id="formFrame">
+ <h1 id="title"></h1>
+ <div>
+ <div class="label">
+ <label for="sessionTokenIdInput" id="sessionTokenIdInputLabel"></label>
+ </div>
+ <div class="inputs">
+ <input type="text" name="sessionTokenIdInput" id="sessionTokenIdInput" />
+ </div>
+ <div class="label">
+ <label for="permanentTokenIdInput" id="permanentTokenIdInputLabel"></label>
+ </div>
+ <div class="inputs">
+ <input type="text" name="permanentTokenIdInput" id="permanentTokenIdInput" />
+ </div>
+ <div class="buttons">
+ <button type="button" id="saveOptionButton" onclick="save_options()"></button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="footer">
+ <p>
+ <a shape="rect" href="http://localhost:8080/bow/bow">bow</a>
+ <a shape="rect" href="http://www.chorem.org/projects/list_files/bow">0.3-SNAPSHOT</a> -
+ <a shape="rect" href="http://www.gnu.org/licenses/agpl.html" id="licenseLink"></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" id="bugReport"></a> -
+ <a shape="rect" href="http://list.chorem.org/cgi-bin/mailman/listinfo/bow-users" id="userSupport"></a>
+ </p>
+ </div>
+ </div>
+</body>
+</html>
Added: trunk/src/main/webapp/extensions/chromium/popup.html
===================================================================
--- trunk/src/main/webapp/extensions/chromium/popup.html (rev 0)
+++ trunk/src/main/webapp/extensions/chromium/popup.html 2010-12-22 08:17:36 UTC (rev 141)
@@ -0,0 +1,157 @@
+<html>
+ <head>
+ <script>
+
+ function bookmarkPermanent() {
+ var tokenId = localStorage["permanentTokenId"];
+ if (tokenId != null) {
+ bookmark(tokenId);
+ }
+ }
+
+ function bookmarkSession() {
+ var tokenId = localStorage["sessionTokenId"];
+ if (tokenId != null) {
+ bookmark(tokenId);
+ }
+ }
+
+ function bookmark(tokenId) {
+ var url = chrome.extension.getBackgroundPage().tabUrl;
+
+ var nameInput = document.getElementById("nameInput");
+ var nameValue = nameInput.value;
+
+ var aliasInput = document.getElementById("aliasInput");
+ var aliasValue = aliasInput.value;
+
+ var tagsInput = document.getElementById("tagsInput");
+ var tagsValue = tagsInput.value;
+
+ var link = "http://bow.chorem.org/bow/bow?action=addUrl&token=" + tokenId + "&url=" + encodeURIComponent(url) + "&name=" + encodeURIComponent(nameValue) + "&alias=" + encodeURIComponent(aliasValue) + "&tags=" + encodeURIComponent(tagsValue);
+
+ var script=document.createElement('script');
+ script.src=link;
+ script.type='text/javascript';
+ document.body.appendChild(script);
+ };
+
+ function init() {
+ var title = document.getElementById("title");
+ title.innerHTML = chrome.i18n.getMessage("actionTitle");
+
+ var nameInputLabel = document.getElementById("nameInputLabel");
+ nameInputLabel.innerHTML = chrome.i18n.getMessage("nameInputLabel");
+
+ var nameInput = document.getElementById("nameInput");
+ nameInput.value = chrome.extension.getBackgroundPage().tabTitle;
+
+ var aliasInputLabel = document.getElementById("aliasInputLabel");
+ aliasInputLabel.innerHTML = chrome.i18n.getMessage("aliasInputLabel");
+
+ var tagsInputLabel = document.getElementById("tagsInputLabel");
+ tagsInputLabel.innerHTML = chrome.i18n.getMessage("tagsInputLabel");
+
+ var sessionTokenId = localStorage["sessionTokenId"];
+ var sessionTokenButton = document.getElementById("sessionTokenButton");
+ if (!isEmpty(sessionTokenId)) {
+ sessionTokenButton.innerHTML = chrome.i18n.getMessage("sessionTokenButton");
+ } else {
+ sessionTokenButton.style.visibility = "hidden";
+ }
+
+ var permanentTokenId = localStorage["permanentTokenId"];
+ var permanentTokenButton = document.getElementById("permanentTokenButton");
+ if (!isEmpty(permanentTokenId)) {
+ permanentTokenButton.innerHTML = chrome.i18n.getMessage("permanentTokenButton");
+ } else {
+ permanentTokenButton.style.visibility = "hidden";
+ }
+
+ if (isEmpty(permanentTokenId) && isEmpty(sessionTokenId)) {
+ var buttons = document.getElementById("buttons");
+ buttons.innerHTML = chrome.i18n.getMessage("noTokenMessage");
+ }
+ };
+
+ function isEmpty(string) {
+ return (string == null || string == "");
+ }
+
+ </script>
+ <style>
+ body {
+ width: 300px;
+ font-size:14px;
+ font-family:Verdana, Arial, Helvetica, sans-serif;
+ font-weight:bold;
+ background-color:#9EDCF8;
+ color:#804561;
+ padding: 5px 10px 5px 10px;
+ }
+
+ h1 {
+ font-size:18px;
+ width: 100%;
+ text-align: center;
+ }
+
+ button {
+ float:right;
+ background:url('fdboutonV.jpg') repeat-x;
+ color:#FFFFFF;
+ font-weight:bold;
+ border:none;
+ width:auto;
+ padding: 5px;
+ cursor: pointer;
+ }
+
+ .labels {
+ margin-top: 5px;
+ }
+
+ .inputs {
+ width: 100%;
+ }
+
+ input {
+ width: 100%;
+ }
+
+ #buttons {
+ width: 100%;
+ margin-top: 10px;
+ height: 30px;
+ text-align: center;
+ text-color: red;
+ }
+
+ </style>
+ </head>
+ <body onLoad="init()">
+ <h1 id="title"></h1>
+ <div class="labels">
+ <label for="nameInput" id="nameInputLabel"></label>
+ </div>
+ <div class="inputs">
+ <input id="nameInput" name="nameInput" type="text" />
+ </div>
+ <div class="labels">
+ <label for="aliasInput" id="aliasInputLabel"></label>
+ </div>
+ <div class="inputs">
+ <input id="aliasInput" name="aliasInput" type="text" />
+ </div>
+ <div class="labels">
+ <label for="tagsInput" id="tagsInputLabel"></label>
+ </div>
+ <div class="inputs">
+ <input id="tagsInput" name="tagsInput" type="text" />
+ </div>
+ <div id="buttons">
+ <button id="permanentTokenButton" onclick="bookmarkPermanent()" type="button"></button>
+ <button id="sessionTokenButton" onclick="bookmarkSession()" type="button"></button>
+ </div>
+ </body>
+</html>
Added: trunk/src/main/webapp/extensions/chromium/ptit-livre.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/extensions/chromium/ptit-livre.jpg
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/webapp/rightMenu.jsp
===================================================================
--- trunk/src/main/webapp/rightMenu.jsp 2010-12-20 22:31:55 UTC (rev 140)
+++ trunk/src/main/webapp/rightMenu.jsp 2010-12-22 08:17:36 UTC (rev 141)
@@ -79,7 +79,7 @@
<input type="submit" value="Logout" />
</div>
</form>
- <!--<a href="#" class="help">Aide</a>-->
+ <a href="http://maven-site.chorem.org/bow/" class="help">Aide</a>
</div>
<div id="side">
<div id="colonneD">
1
0
r140 - in trunk/src/main: java/org/chorem/bow webapp webapp/css
by kmorin@users.chorem.org 20 Dec '10
by kmorin@users.chorem.org 20 Dec '10
20 Dec '10
Author: kmorin
Date: 2010-12-20 23:31:55 +0100 (Mon, 20 Dec 2010)
New Revision: 140
Url: http://chorem.org/repositories/revision/bow/140
Log:
- add password confirmation during registration
- remove question mark near logout
Modified:
trunk/src/main/java/org/chorem/bow/ControllerServlet.java
trunk/src/main/webapp/css/connexion.css
trunk/src/main/webapp/login.jsp
trunk/src/main/webapp/register.jsp
trunk/src/main/webapp/rightMenu.jsp
Modified: trunk/src/main/java/org/chorem/bow/ControllerServlet.java
===================================================================
--- trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-12-20 13:38:14 UTC (rev 139)
+++ trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-12-20 22:31:55 UTC (rev 140)
@@ -72,1352 +72,1360 @@
* @author bbrossaud
*/
public class ControllerServlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
- private static final Log log = LogFactory.getLog(ControllerServlet.class);
- protected String version = "";
- protected String bowServletUrl = "";
+ private static final long serialVersionUID = 1L;
+ private static final Log log = LogFactory.getLog(ControllerServlet.class);
+ protected String version = "";
+ protected String bowServletUrl = "";
- public ControllerServlet() throws Exception {
- BowConfig config = BowConfig.getInstance();
- version = config.getVersion();
- bowServletUrl = config.getBowUrl();
- if (bowServletUrl == null) {
- throw new Exception("No bow.url=\"SERVER URL\" in bow.properties");
- }
- bowServletUrl += config.getServletBow();
- }
+ public ControllerServlet() throws Exception {
+ BowConfig config = BowConfig.getInstance();
+ version = config.getVersion();
+ bowServletUrl = config.getBowUrl();
+ if (bowServletUrl == null) {
+ throw new Exception("No bow.url=\"SERVER URL\" in bow.properties");
+ }
+ bowServletUrl += config.getServletBow();
+ }
- @Override
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws IOException, ServletException {
- doPost(request, response);
- }
+ @Override
+ public void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws IOException, ServletException {
+ doPost(request, response);
+ }
- /* @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet error occurs
- */
- @Override
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws IOException, ServletException {
- try {
- request.setCharacterEncoding("UTF8");
- request.setAttribute("version", version);
- request.setAttribute("bowUrl", bowServletUrl);
- HttpSession session = request.getSession(true);
- User user = (User) session.getAttribute("user");
+ /* @param request servlet request
+ * @param response servlet response
+ * @throws ServletException if a servlet error occurs
+ */
+ @Override
+ public void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws IOException, ServletException {
+ try {
+ request.setCharacterEncoding("UTF8");
+ request.setAttribute("version", version);
+ request.setAttribute("bowUrl", bowServletUrl);
+ HttpSession session = request.getSession(true);
+ User user = (User) session.getAttribute("user");
- String token = request.getParameter("token"); // token or not
- if (token != null && !token.isEmpty()) {
- user = checkToken(token, session); // retrieve user by token
- }
+ String token = request.getParameter("token"); // token or not
+ if (token != null && !token.isEmpty()) {
+ user = checkToken(token, session); // retrieve user by token
+ }
- String action = request.getParameter("action");
- if (action != null) {
- if (action.equals("register")) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionRegister");
- }
- actionRegister(request, response, session);
- } else if (action.equals("registration")) {
- if (log.isDebugEnabled()) {
- log.debug("Going to Register");
- }
- request.getRequestDispatcher("register.jsp").forward(request, response);
- } else if (action.equals("forgotPassword")) {
- if (log.isDebugEnabled()) {
- log.debug("Going to forgotPassword");
- }
- request.getRequestDispatcher("forgotPassword.jsp").forward(request, response);
- } else if (action.equals("login")) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionLogin");
- }
- actionLogin(request, response, session);
- } else if (action.equals("logout")) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionLogout");
- }
- actionLogout(request, response, session);
- } else if (action.equals("home")) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionHome.jsp");
- }
- actionHome(request, response, session);
- } else if (action.equals("addUrl") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionAddUrl");
- }
- actionAddUrl(request, response, user);
- } else if (action.equals("sendPassword")) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionSendPassword");
- }
- actionSendPassword(request, response);
- } else if (action.equals("modifyBookmark") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionModif");
- }
- actionModifyBookmark(request, response, user);
- } else if (action.equals("importBookmarks") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionImportBookmarks");
- }
- actionImportBookmarks(request, response, user);
- } else if (action.equals("exportBookmarks") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionExportBookmarks");
- }
- actionExportBookmarks(response, user);
- } else if (action.equals("search") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionSearch");
- }
- actionSearch(request, user);
- request.getRequestDispatcher("search.jsp").forward(request, response);
- } else if (action.equals("generateToken") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionGenerateToken");
- }
- actionGenerateToken(request, response, user, session);
- request.getRequestDispatcher("preferences.jsp").forward(request, response);
- } else if (action.equals("deleteTag") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionDeleteTag");
- }
- actionDeleteTag(request, response, user);
- } else if (action.equals("addAlias") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionAddAlias");
- }
- actionAddAlias(request, response);
- } else if (action.equals("removeBookmark") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionRemoveBookmark");
- }
- actionRemoveBookmark(request, response, user);
- } else if (action.equals("editBookmark") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionEditBookmark");
- }
- actionEditBookmark(request, response, user);
- } else if (action.equals("order") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionOrder");
- }
- actionOrder(request, response, user);
- request.getRequestDispatcher("search.jsp").forward(request, response);
- } else if (action.equals("addClick") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionAddClic");
- }
- actionAddClick(request, response);
- } else if (action.equals("temporaryXml")) {
- if (log.isDebugEnabled()) {
- log.debug("Going to temporaryXml.jsp");
- }
- request.getRequestDispatcher("temporaryXml.jsp").forward(request, response);
- } else if (action.equals("permanentXml")) {
- if (log.isDebugEnabled()) {
- log.debug("Going to permanentXml.jsp");
- }
- request.getRequestDispatcher("permanentXml.jsp").forward(request, response);
- } else if (action.equals("openSearchSuggestion") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionOpenSearchSuggestion");
- }
- actionOpenSearchSuggestion(request, response, user);
- request.getRequestDispatcher("suggestions.jsp").forward(request, response);
- } else if (action.equals("openSearchResult") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionOpenSearchResult");
- }
- actionOpenSearchResult(request, response, session, user, token);
- } else if (action.equals("fullText") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionFullText");
- }
- actionFullText(request, user);
- request.getRequestDispatcher("search.jsp").forward(request, response);
- } else if (action.equals("preferences") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionPreferences");
- }
- getBookmarksByImportDate(request, user);
- request.getRequestDispatcher("preferences.jsp").forward(request, response);
- } else if (action.equals("admin") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionAdmin");
- }
- if ((Boolean) session.getAttribute("admin")) {
- request.getRequestDispatcher("admin.jsp").forward(request, response);
- } else {
- request.getRequestDispatcher("login.jsp").forward(request, response);
- }
- } else if (action.equals("changePreferences") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionChangePreferences");
- }
- actionChangePreferences(request, session, user);
- request.getRequestDispatcher("preferences.jsp").forward(request, response);
- } else if (action.equals("deleteImport") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionDeleteImport");
- }
- actionDeleteImport(request, response, user);
- //request.getRequestDispatcher("preferences.jsp").forward(request, response);
- } else if (action.equals("reIndexation") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionReIndexation");
- }
- actionReIndexation(request, session, user);
- request.getRequestDispatcher("admin.jsp").forward(request, response);
- } else if (action.equals("deleteSearchResults") && user != null) {
- if (log.isDebugEnabled()) {
- log.debug("Going to actionDeleteSearchResults");
- }
- actionDeleteSearchResults(request, response, user);
- }
- else {
- if (user != null) {
- request.getRequestDispatcher("error.jsp").forward(request, response);
- } else {
- request.getRequestDispatcher("login.jsp").forward(request, response);
- }
- }
- } else {
- request.getRequestDispatcher("login.jsp").forward(request, response);
- }
- } catch (Exception eee) {
- log.error("Can't do action", eee);
- request.setAttribute("errorMsgUser", eee.getMessage());
- request.setAttribute("errorMsgTech", eee.toString());
- request.getRequestDispatcher("error.jsp").forward(request, response);
- }
- }
+ String action = request.getParameter("action");
+ if (action != null) {
+ if (action.equals("register")) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionRegister");
+ }
+ actionRegister(request, response, session);
+ } else if (action.equals("registration")) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to Register");
+ }
+ request.getRequestDispatcher("register.jsp").forward(request, response);
+ } else if (action.equals("forgotPassword")) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to forgotPassword");
+ }
+ request.getRequestDispatcher("forgotPassword.jsp").forward(request, response);
+ } else if (action.equals("login")) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionLogin");
+ }
+ actionLogin(request, response, session);
+ } else if (action.equals("logout")) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionLogout");
+ }
+ actionLogout(request, response, session);
+ } else if (action.equals("home")) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionHome.jsp");
+ }
+ actionHome(request, response, session);
+ } else if (action.equals("addUrl") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionAddUrl");
+ }
+ actionAddUrl(request, response, user);
+ } else if (action.equals("sendPassword")) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionSendPassword");
+ }
+ actionSendPassword(request, response);
+ } else if (action.equals("modifyBookmark") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionModif");
+ }
+ actionModifyBookmark(request, response, user);
+ } else if (action.equals("importBookmarks") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionImportBookmarks");
+ }
+ actionImportBookmarks(request, response, user);
+ } else if (action.equals("exportBookmarks") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionExportBookmarks");
+ }
+ actionExportBookmarks(response, user);
+ } else if (action.equals("search") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionSearch");
+ }
+ actionSearch(request, user);
+ request.getRequestDispatcher("search.jsp").forward(request, response);
+ } else if (action.equals("generateToken") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionGenerateToken");
+ }
+ actionGenerateToken(request, response, user, session);
+ request.getRequestDispatcher("preferences.jsp").forward(request, response);
+ } else if (action.equals("deleteTag") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionDeleteTag");
+ }
+ actionDeleteTag(request, response, user);
+ } else if (action.equals("addAlias") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionAddAlias");
+ }
+ actionAddAlias(request, response);
+ } else if (action.equals("removeBookmark") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionRemoveBookmark");
+ }
+ actionRemoveBookmark(request, response, user);
+ } else if (action.equals("editBookmark") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionEditBookmark");
+ }
+ actionEditBookmark(request, response, user);
+ } else if (action.equals("order") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionOrder");
+ }
+ actionOrder(request, response, user);
+ request.getRequestDispatcher("search.jsp").forward(request, response);
+ } else if (action.equals("addClick") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionAddClic");
+ }
+ actionAddClick(request, response);
+ } else if (action.equals("temporaryXml")) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to temporaryXml.jsp");
+ }
+ request.getRequestDispatcher("temporaryXml.jsp").forward(request, response);
+ } else if (action.equals("permanentXml")) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to permanentXml.jsp");
+ }
+ request.getRequestDispatcher("permanentXml.jsp").forward(request, response);
+ } else if (action.equals("openSearchSuggestion") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionOpenSearchSuggestion");
+ }
+ actionOpenSearchSuggestion(request, response, user);
+ request.getRequestDispatcher("suggestions.jsp").forward(request, response);
+ } else if (action.equals("openSearchResult") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionOpenSearchResult");
+ }
+ actionOpenSearchResult(request, response, session, user, token);
+ } else if (action.equals("fullText") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionFullText");
+ }
+ actionFullText(request, user);
+ request.getRequestDispatcher("search.jsp").forward(request, response);
+ } else if (action.equals("preferences") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionPreferences");
+ }
+ getBookmarksByImportDate(request, user);
+ request.getRequestDispatcher("preferences.jsp").forward(request, response);
+ } else if (action.equals("admin") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionAdmin");
+ }
+ if ((Boolean) session.getAttribute("admin")) {
+ request.getRequestDispatcher("admin.jsp").forward(request, response);
+ } else {
+ request.getRequestDispatcher("login.jsp").forward(request, response);
+ }
+ } else if (action.equals("changePreferences") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionChangePreferences");
+ }
+ actionChangePreferences(request, session, user);
+ request.getRequestDispatcher("preferences.jsp").forward(request, response);
+ } else if (action.equals("deleteImport") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionDeleteImport");
+ }
+ actionDeleteImport(request, response, user);
+ //request.getRequestDispatcher("preferences.jsp").forward(request, response);
+ } else if (action.equals("reIndexation") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionReIndexation");
+ }
+ actionReIndexation(request, session, user);
+ request.getRequestDispatcher("admin.jsp").forward(request, response);
+ } else if (action.equals("deleteSearchResults") && user != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Going to actionDeleteSearchResults");
+ }
+ actionDeleteSearchResults(request, response, user);
+ }
+ else {
+ if (user != null) {
+ request.getRequestDispatcher("error.jsp").forward(request, response);
+ } else {
+ request.getRequestDispatcher("login.jsp").forward(request, response);
+ }
+ }
+ } else {
+ request.getRequestDispatcher("login.jsp").forward(request, response);
+ }
+ } catch (Exception eee) {
+ log.error("Can't do action", eee);
+ request.setAttribute("errorMsgUser", eee.getMessage());
+ request.setAttribute("errorMsgTech", eee.toString());
+ request.getRequestDispatcher("error.jsp").forward(request, response);
+ }
+ }
- /* @param request servlet request
- * @param user user information
- * @throws IOException If the redirection fails
- * @description Deletes every bookmark imported at a given date
- */
- protected void actionDeleteImport(HttpServletRequest request,
- HttpServletResponse response,
- User user) throws IOException {
- String date = request.getParameter("date");
-
- if (date != null) {
- WikittyProxy proxy = BowProxy.getInstance();
-
- if (date.matches("[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{1,3}Z")) {
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Import.EXT_IMPORT).eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).
- eq(Import.FQ_FIELD_DATE, date).criteria();
- List<Import> bookmarks = proxy.findAllByCriteria(Import.class, criteria).getAll();
- List<String> ids = new ArrayList<String>();
+ /* @param request servlet request
+ * @param user user information
+ * @throws IOException If the redirection fails
+ * @description Deletes every bookmark imported at a given date
+ */
+ protected void actionDeleteImport(HttpServletRequest request,
+ HttpServletResponse response,
+ User user) throws IOException {
+ String date = request.getParameter("date");
- for (Import bookmark : bookmarks) {
- ids.add(bookmark.getWikittyId());
- }
- proxy.delete(ids);
- }
- response.sendRedirect("bow?action=preferences");
+ if (date != null) {
+ WikittyProxy proxy = BowProxy.getInstance();
+
+ if (date.matches("[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{1,3}Z")) {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Import.EXT_IMPORT).eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).
+ eq(Import.FQ_FIELD_DATE, date).criteria();
+ List<Import> bookmarks = proxy.findAllByCriteria(Import.class, criteria).getAll();
+ List<String> ids = new ArrayList<String>();
+
+ for (Import bookmark : bookmarks) {
+ ids.add(bookmark.getWikittyId());
+ }
+ proxy.delete(ids);
+ }
+ response.sendRedirect("bow?action=preferences");
+ }
}
- }
- /* @param request servlet request
- * @param response servlet response
- * @param user user information
- * @throws IOException If the redirection fails
- * @description Deletes the bookmarks returned after a research
- */
- protected void actionDeleteSearchResults(HttpServletRequest request, HttpServletResponse response, User user) throws IOException {
- String searchLine = request.getParameter("searchLine");
- String fullText = request.getParameter("fullTextLine");
-
- if (searchLine != null && fullText != null) {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria;
- if (fullText.isEmpty()) {
- criteria = getBookmarkListCriteriaByUser(user, searchLine);
- } else {
- criteria = Search.query().keyword(fullText).eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria().addFacetField(Bookmark.FQ_FIELD_TAGS);
- }
- List<Bookmark> bookmarks = proxy.findAllByCriteria(Bookmark.class, criteria).getAll();
- List<String> ids = new ArrayList<String>();
-
- for (Bookmark bookmark : bookmarks) {
- if (searchLine.isEmpty() && bookmark.getTags() == null || !searchLine.isEmpty() ||
- fullText.isEmpty() && bookmark.getTags() == null || !fullText.isEmpty()) {
- ids.add(bookmark.getWikittyId());
- }
- }
- proxy.delete(ids);
+ /* @param request servlet request
+ * @param response servlet response
+ * @param user user information
+ * @throws IOException If the redirection fails
+ * @description Deletes the bookmarks returned after a research
+ */
+ protected void actionDeleteSearchResults(HttpServletRequest request, HttpServletResponse response, User user) throws IOException {
+ String searchLine = request.getParameter("searchLine");
+ String fullText = request.getParameter("fullTextLine");
+
+ if (searchLine != null && fullText != null) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria;
+ if (fullText.isEmpty()) {
+ criteria = getBookmarkListCriteriaByUser(user, searchLine);
+ } else {
+ criteria = Search.query().keyword(fullText).eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria().addFacetField(Bookmark.FQ_FIELD_TAGS);
+ }
+ List<Bookmark> bookmarks = proxy.findAllByCriteria(Bookmark.class, criteria).getAll();
+ List<String> ids = new ArrayList<String>();
+
+ for (Bookmark bookmark : bookmarks) {
+ if (searchLine.isEmpty() && bookmark.getTags() == null || !searchLine.isEmpty() ||
+ fullText.isEmpty() && bookmark.getTags() == null || !fullText.isEmpty()) {
+ ids.add(bookmark.getWikittyId());
+ }
+ }
+ proxy.delete(ids);
+ }
+ response.sendRedirect("bow?action=home");
}
- response.sendRedirect("bow?action=home");
- }
-
- /* @param request servlet request
- * @param response servlet response
- * @param user the user
- * @param token the permanent or temporary token
- * @throws ServletException if a servlet error occurs
- * @description set the openSearch result
- */
- 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://[^ ]*")) {
- response.sendRedirect(searchLine);
- } else if (searchLine != null
- && (searchLine.startsWith(":") || searchLine.startsWith("t:")) ) {
- // on fait une recherche sur les tags
- int index = searchLine.indexOf(":");
- searchLine = searchLine.substring(index+1); // suppress first ":"
+ /* @param request servlet request
+ * @param response servlet response
+ * @param user the user
+ * @param token the permanent or temporary token
+ * @throws ServletException if a servlet error occurs
+ * @description set the openSearch result
+ */
+ 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://[^ ]*")) {
+ response.sendRedirect(searchLine);
+ } else if (searchLine != null
+ && (searchLine.startsWith(":") || searchLine.startsWith("t:")) ) {
+ // on fait une recherche sur les tags
- session.setAttribute("user", user);
- initializeToken(session, user);
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = getBookmarkListCriteriaByUser(user, searchLine);
- criteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK);
- PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria);// retrieve bookmarks by search
- BookmarkActions bookmarkActions = createBookmarkActions(request, result, searchLine);
- request.setAttribute("bookmarkActions", bookmarkActions);
- request.setAttribute("token", token);
- request.getRequestDispatcher("search.jsp").forward(request, response);
- } else if (searchLine != null && searchLine.startsWith("f:")) {
- // recherche fulltext dans bow
- String fullText = searchLine.substring(2);
+ int index = searchLine.indexOf(":");
+ searchLine = searchLine.substring(index+1); // suppress first ":"
- session.setAttribute("user", user);
- initializeToken(session, user);
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria;
- if (!fullText.isEmpty()) {
- criteria = Search.query().keyword(fullText).
- eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria().
- addFacetField(Bookmark.FQ_FIELD_TAGS);
+ session.setAttribute("user", user);
+ initializeToken(session, user);
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = getBookmarkListCriteriaByUser(user, searchLine);
+ criteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK);
+ PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria);// retrieve bookmarks by search
+ BookmarkActions bookmarkActions = createBookmarkActions(request, result, searchLine);
+ request.setAttribute("bookmarkActions", bookmarkActions);
+ request.setAttribute("token", token);
+ request.getRequestDispatcher("search.jsp").forward(request, response);
+ } else if (searchLine != null && searchLine.startsWith("f:")) {
+ // recherche fulltext dans bow
+ String fullText = searchLine.substring(2);
- } else {
- criteria = getBookmarkListCriteriaByUser(user, null);
- }
- PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria);
- BookmarkActions bookmarkActions = createBookmarkActions(request, result, null);
- request.setAttribute("bookmarkActions", bookmarkActions);
- request.setAttribute("token", token);
- request.getRequestDispatcher("search.jsp").forward(request, response);
- } else if (searchLine != null && searchLine.startsWith("a:")) {
- // on redirige vers l'alias demande
- searchLine = searchLine.substring(2);
- response.sendRedirect(BowConfig.getInstance().getAliasUrl() + searchLine);
- } else {
- // on fait une recherche sur le moteur de recherche configurer
- WikittyProxy proxy = BowProxy.getInstance();
- Preference pref = proxy.restore(Preference.class, user.getWikittyId());
+ session.setAttribute("user", user);
+ initializeToken(session, user);
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria;
+ if (!fullText.isEmpty()) {
+ criteria = Search.query().keyword(fullText).
+ eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria().
+ addFacetField(Bookmark.FQ_FIELD_TAGS);
- String searchEngineURL = pref.getSearchEngineUrlResults();
- if (searchEngineURL == null || "".equals(searchEngineURL)) {
- BowConfig config = BowConfig.getInstance();
- searchEngineURL = config.getSearchEngine();
- }
- searchEngineURL = searchEngineURL.replace("{searchTerms}", searchLine);
- searchEngineURL = response.encodeRedirectURL(searchEngineURL);
+ } else {
+ criteria = getBookmarkListCriteriaByUser(user, null);
+ }
+ PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria);
+ BookmarkActions bookmarkActions = createBookmarkActions(request, result, null);
+ request.setAttribute("bookmarkActions", bookmarkActions);
+ request.setAttribute("token", token);
+ request.getRequestDispatcher("search.jsp").forward(request, response);
+ } else if (searchLine != null && searchLine.startsWith("a:")) {
+ // on redirige vers l'alias demande
+ searchLine = searchLine.substring(2);
+ response.sendRedirect(BowConfig.getInstance().getAliasUrl() + searchLine);
+ } else {
+ // on fait une recherche sur le moteur de recherche configurer
+ WikittyProxy proxy = BowProxy.getInstance();
+ Preference pref = proxy.restore(Preference.class, user.getWikittyId());
- response.sendRedirect(searchEngineURL);
- }
- }
+ String searchEngineURL = pref.getSearchEngineUrlResults();
+ if (searchEngineURL == null || "".equals(searchEngineURL)) {
+ BowConfig config = BowConfig.getInstance();
+ searchEngineURL = config.getSearchEngine();
+ }
+ searchEngineURL = searchEngineURL.replace("{searchTerms}", searchLine);
+ searchEngineURL = response.encodeRedirectURL(searchEngineURL);
- /* @param request servlet request
- * @param response servlet response
- * @param user the user
- * @throws ServletException if a servlet error occurs
- * @description set the openSearch suggestions
- */
- protected void actionOpenSearchSuggestion(HttpServletRequest request,
- HttpServletResponse response,
- User user)
- throws IOException, ServletException {
- if (user != null) {
- String search = request.getParameter("searchLine");
- if (search != null) {
- OpenSearchActions openSearchActions = new OpenSearchActions();
- WikittyProxy proxy = BowProxy.getInstance();
- String[] words = search.split("\\s+");
- List<String> searchLine = new ArrayList<String>(Arrays.asList(words));
- if (search.charAt(search.length() - 1) == ' ') {
- searchLine.add(""); // if the user types nothing we have to propose suggestions
- }
- Criteria criteria;
- if (searchLine.size() > 1) {
- List<String> cpy = new ArrayList<String>(searchLine);
- cpy.remove(cpy.size() - 1);
- criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).
- eq(Bookmark.FQ_FIELD_TAGS, cpy).criteria().addFacetField(Bookmark.FQ_FIELD_TAGS);
- } else {
- criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).
- criteria().addFacetField(Bookmark.FQ_FIELD_TAGS);
- }
- PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria);
- List<Bookmark> bookList = result.getAll();
- List<FacetTopic> topics = result.getTopic(Bookmark.FQ_FIELD_TAGS);
- openSearchActions.setBookmarkList(bookList);
- openSearchActions.setSuggestionList(topics);
- openSearchActions.findSuggestions(searchLine);
- request.setAttribute("openSearchAction", openSearchActions);
- }
- }
- }
+ response.sendRedirect(searchEngineURL);
+ }
+ }
- /* @param request servlet request
- * @param response servlet response
- * @param session current session
- * @throws ServletException if a servlet error occurs
- * @description delete the session
- */
- protected void actionLogout(HttpServletRequest request,
- HttpServletResponse response,
- HttpSession session)
- throws IOException, ServletException {
- session.invalidate();
- request.getRequestDispatcher("login.jsp").forward(request, response);
- }
+ /* @param request servlet request
+ * @param response servlet response
+ * @param user the user
+ * @throws ServletException if a servlet error occurs
+ * @description set the openSearch suggestions
+ */
+ protected void actionOpenSearchSuggestion(HttpServletRequest request,
+ HttpServletResponse response,
+ User user)
+ throws IOException, ServletException {
+ if (user != null) {
+ String search = request.getParameter("searchLine");
+ if (search != null) {
+ OpenSearchActions openSearchActions = new OpenSearchActions();
+ WikittyProxy proxy = BowProxy.getInstance();
+ String[] words = search.split("\\s+");
+ List<String> searchLine = new ArrayList<String>(Arrays.asList(words));
+ if (search.charAt(search.length() - 1) == ' ') {
+ searchLine.add(""); // if the user types nothing we have to propose suggestions
+ }
+ Criteria criteria;
+ if (searchLine.size() > 1) {
+ List<String> cpy = new ArrayList<String>(searchLine);
+ cpy.remove(cpy.size() - 1);
+ criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).
+ eq(Bookmark.FQ_FIELD_TAGS, cpy).criteria().addFacetField(Bookmark.FQ_FIELD_TAGS);
+ } else {
+ criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).
+ criteria().addFacetField(Bookmark.FQ_FIELD_TAGS);
+ }
+ PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria);
+ List<Bookmark> bookList = result.getAll();
+ List<FacetTopic> topics = result.getTopic(Bookmark.FQ_FIELD_TAGS);
+ openSearchActions.setBookmarkList(bookList);
+ openSearchActions.setSuggestionList(topics);
+ openSearchActions.findSuggestions(searchLine);
+ request.setAttribute("openSearchAction", openSearchActions);
+ }
+ }
+ }
- /* @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet error occurs
- * @description when the user click on the bookmark bowServletUrl, we
- * increment the number of click
- */
- protected void actionAddClick(HttpServletRequest request, HttpServletResponse response)
- throws IOException, ServletException {
- String bookmarkId = request.getParameter("bookmarkId");
- if (bookmarkId != null && !bookmarkId.isEmpty()) {
- WikittyProxy proxy = BowProxy.getInstance();
- Bookmark bookmark = proxy.restore(Bookmark.class, bookmarkId);
- if (bookmark != null) {
- int click = bookmark.getClick();
- ++click;
- bookmark.setClick(click);
- proxy.store(bookmark);
- String link = bookmark.getLink();
- response.sendRedirect(link);
- }
- }
- }
+ /* @param request servlet request
+ * @param response servlet response
+ * @param session current session
+ * @throws ServletException if a servlet error occurs
+ * @description delete the session
+ */
+ protected void actionLogout(HttpServletRequest request,
+ HttpServletResponse response,
+ HttpSession session)
+ throws IOException, ServletException {
+ session.invalidate();
+ request.getRequestDispatcher("login.jsp").forward(request, response);
+ }
- /* @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 actionOrder(HttpServletRequest request,
- HttpServletResponse response,
- User user)
- throws IOException, ServletException {
- String type = request.getParameter("type");
- String searchLine = request.getParameter("searchLine");
- Criteria baseCriteria = getBookmarkListCriteriaByUser(user, searchLine);
- if (type != null && baseCriteria != null && !type.isEmpty()) {
- WikittyProxy proxy = BowProxy.getInstance();
- PagedResult<Bookmark> result = null;
- if (type.equals("ascName")) {
- Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_DESCRIPTION);
- result = proxy.findAllByCriteria(Bookmark.class, criteria);
- } else if (type.equals("ascDate")) {
- Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_DATE);
- result = proxy.findAllByCriteria(Bookmark.class, criteria);
- } else if (type.equals("ascClick")) {
- Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_CLICK);
- result = proxy.findAllByCriteria(Bookmark.class, criteria);
- } else if (type.equals("descName")) {
- Criteria criteria = baseCriteria.addSortDescending(Bookmark.FQ_FIELD_DESCRIPTION);
- result = proxy.findAllByCriteria(Bookmark.class, criteria);
- } else if (type.equals("descDate")) {
- Criteria criteria = baseCriteria.addSortDescending(Bookmark.FQ_FIELD_DATE);
- result = proxy.findAllByCriteria(Bookmark.class, criteria);
- } else if (type.equals("descClick")) {
- Criteria criteria = baseCriteria.addSortDescending(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
+ * @throws ServletException if a servlet error occurs
+ * @description when the user click on the bookmark bowServletUrl, we
+ * increment the number of click
+ */
+ protected void actionAddClick(HttpServletRequest request, HttpServletResponse response)
+ throws IOException, ServletException {
+ String bookmarkId = request.getParameter("bookmarkId");
+ if (bookmarkId != null && !bookmarkId.isEmpty()) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Bookmark bookmark = proxy.restore(Bookmark.class, bookmarkId);
+ if (bookmark != null) {
+ int click = bookmark.getClick();
+ ++click;
+ bookmark.setClick(click);
+ proxy.store(bookmark);
+ String link = bookmark.getLink();
+ response.sendRedirect(link);
+ }
+ }
+ }
- /* @param request servlet request
- * @param response servlet response
- * @param user the user
- * @throws ServletException if a servlet error occurs
- * @description edit the bookmark
- */
- protected void actionEditBookmark(HttpServletRequest request,
- HttpServletResponse response,
- User user)
- throws IOException, ServletException {
- String bookmarkId = request.getParameter("bookmarkId");
- if (bookmarkId != null && !bookmarkId.isEmpty()) {
- WikittyProxy proxy = BowProxy.getInstance();
- Bookmark bookmark = proxy.restore(Bookmark.class, bookmarkId);
- if (bookmark != null) {
- request.setAttribute("link", bookmark.getLink());
- request.setAttribute("name", bookmark.getDescription());
- request.setAttribute("alias", bookmark.getAlias());
- request.setAttribute("tags", BookmarkActions.getBookmarkTagsString(bookmark));
- request.setAttribute("action", "bow?action=modifyBookmark");
- request.setAttribute("bookmarkId", bookmarkId);
- }
- }
- String searchLine = request.getParameter("searchLine");
- if (searchLine == null) {
- initHomePage(request, user);
- request.getRequestDispatcher("home.jsp").forward(request, response);
- } else {
- actionSearch(request, user);
- request.getRequestDispatcher("search.jsp").forward(request, response);
- }
- }
+ /* @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 actionOrder(HttpServletRequest request,
+ HttpServletResponse response,
+ User user)
+ throws IOException, ServletException {
+ String type = request.getParameter("type");
+ String searchLine = request.getParameter("searchLine");
+ Criteria baseCriteria = getBookmarkListCriteriaByUser(user, searchLine);
+ if (type != null && baseCriteria != null && !type.isEmpty()) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ PagedResult<Bookmark> result = null;
+ if (type.equals("ascName")) {
+ Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_DESCRIPTION);
+ result = proxy.findAllByCriteria(Bookmark.class, criteria);
+ } else if (type.equals("ascDate")) {
+ Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_DATE);
+ result = proxy.findAllByCriteria(Bookmark.class, criteria);
+ } else if (type.equals("ascClick")) {
+ Criteria criteria = baseCriteria.addSortAscending(Bookmark.FQ_FIELD_CLICK);
+ result = proxy.findAllByCriteria(Bookmark.class, criteria);
+ } else if (type.equals("descName")) {
+ Criteria criteria = baseCriteria.addSortDescending(Bookmark.FQ_FIELD_DESCRIPTION);
+ result = proxy.findAllByCriteria(Bookmark.class, criteria);
+ } else if (type.equals("descDate")) {
+ Criteria criteria = baseCriteria.addSortDescending(Bookmark.FQ_FIELD_DATE);
+ result = proxy.findAllByCriteria(Bookmark.class, criteria);
+ } else if (type.equals("descClick")) {
+ Criteria criteria = baseCriteria.addSortDescending(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 remove the bookmark
- */
- protected void actionRemoveBookmark(HttpServletRequest request,
- HttpServletResponse response,
- User user)
- throws IOException, ServletException {
- String bookmarkId = request.getParameter("bookmarkId");
- if (bookmarkId != null && !bookmarkId.isEmpty()) {
- try {
- WikittyProxy proxy = BowProxy.getInstance();
- Bookmark bookmark = proxy.restore(Bookmark.class, bookmarkId);
- if (bookmark != null) {
- proxy.delete(bookmarkId);
- }
- } catch (Exception eee) {
- log.error("Can't do action", eee);
- }
- }
- redirectToTheGoodPage(request, response);
- }
+ /* @param request servlet request
+ * @param response servlet response
+ * @param user the user
+ * @throws ServletException if a servlet error occurs
+ * @description edit the bookmark
+ */
+ protected void actionEditBookmark(HttpServletRequest request,
+ HttpServletResponse response,
+ User user)
+ throws IOException, ServletException {
+ String bookmarkId = request.getParameter("bookmarkId");
+ if (bookmarkId != null && !bookmarkId.isEmpty()) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Bookmark bookmark = proxy.restore(Bookmark.class, bookmarkId);
+ if (bookmark != null) {
+ request.setAttribute("link", bookmark.getLink());
+ request.setAttribute("name", bookmark.getDescription());
+ request.setAttribute("alias", bookmark.getAlias());
+ request.setAttribute("tags", BookmarkActions.getBookmarkTagsString(bookmark));
+ request.setAttribute("action", "bow?action=modifyBookmark");
+ request.setAttribute("bookmarkId", bookmarkId);
+ }
+ }
+ String searchLine = request.getParameter("searchLine");
+ if (searchLine == null) {
+ initHomePage(request, user);
+ request.getRequestDispatcher("home.jsp").forward(request, response);
+ } else {
+ actionSearch(request, user);
+ request.getRequestDispatcher("search.jsp").forward(request, response);
+ }
+ }
- /* @param request servlet request
- * @param response servlet response
- * @param user the user
- * @throws ServletException if a servlet error occurs
- * @description delete the bookmark tag
- */
- protected void actionDeleteTag(HttpServletRequest request,
- HttpServletResponse response,
- User user)
- throws IOException, ServletException {
- String bookmarkId = request.getParameter("bookmarkId");
- String tag = request.getParameter("deleteTag");
- if (tag != null && bookmarkId != null) {
- if (!bookmarkId.isEmpty()) {
- WikittyProxy proxy = BowProxy.getInstance();
- Bookmark bookmark = proxy.restore(Bookmark.class, bookmarkId);
- if (bookmark != null) {
- bookmark.removeTags(tag);
- proxy.store(bookmark);
- }
- }
- }
- redirectToTheGoodPage(request, response);
- }
+ /* @param request servlet request
+ * @param response servlet response
+ * @param user the user
+ * @throws ServletException if a servlet error occurs
+ * @description remove the bookmark
+ */
+ protected void actionRemoveBookmark(HttpServletRequest request,
+ HttpServletResponse response,
+ User user)
+ throws IOException, ServletException {
+ String bookmarkId = request.getParameter("bookmarkId");
+ if (bookmarkId != null && !bookmarkId.isEmpty()) {
+ try {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Bookmark bookmark = proxy.restore(Bookmark.class, bookmarkId);
+ if (bookmark != null) {
+ proxy.delete(bookmarkId);
+ }
+ } catch (Exception eee) {
+ log.error("Can't do action", eee);
+ }
+ }
+ redirectToTheGoodPage(request, response);
+ }
+ /* @param request servlet request
+ * @param response servlet response
+ * @param user the user
+ * @throws ServletException if a servlet error occurs
+ * @description delete the bookmark tag
+ */
+ protected void actionDeleteTag(HttpServletRequest request,
+ HttpServletResponse response,
+ User user)
+ throws IOException, ServletException {
+ String bookmarkId = request.getParameter("bookmarkId");
+ String tag = request.getParameter("deleteTag");
+ if (tag != null && bookmarkId != null) {
+ if (!bookmarkId.isEmpty()) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Bookmark bookmark = proxy.restore(Bookmark.class, bookmarkId);
+ if (bookmark != null) {
+ bookmark.removeTags(tag);
+ proxy.store(bookmark);
+ }
+ }
+ }
+ redirectToTheGoodPage(request, response);
+ }
- /* @param request servlet request
- * @param response servlet response
- * @param user User user
- * @param session HttpSession session
- * @throws ServletException if a servlet error occurs
- * @description delete the current token and generate an another
- */
- protected void actionGenerateToken(HttpServletRequest request,
- HttpServletResponse response,
- User user,
- HttpSession session)
- throws IOException, ServletException, NoSuchAlgorithmException {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = Search.query().eq(Token.FQ_FIELD_EMAIL, user.getEmail()).criteria();
- Token currentToken = proxy.findByCriteria(Token.class, criteria);
- if (currentToken != null) {
- String id = currentToken.getWikittyId();
- proxy.delete(id);
- }
- TokenActions tokenActions = (TokenActions) session.getAttribute("tokenActions");
- if (tokenActions != null) {
- String token = tokenActions.generateToken(); // Generate an encoding MD5 token
- criteria = Search.query().eq(Token.FQ_FIELD_TOKEN, token).criteria();
- Token oldToken = proxy.findByCriteria(Token.class, criteria);
- if (oldToken == null) { // Check if the token already exists
- TokenImpl newToken = new TokenImpl();
- newToken.setToken(token);
- newToken.setEmail(user.getEmail());
- proxy.store((Token) newToken); // If the token doesn't exist, it is stored
- tokenActions.setPermanentToken(token);
- } else {
- tokenActions.setPermanentToken("");
- }
- }
- }
+ /* @param request servlet request
+ * @param response servlet response
+ * @param user User user
+ * @param session HttpSession session
+ * @throws ServletException if a servlet error occurs
+ * @description delete the current token and generate an another
+ */
+ protected void actionGenerateToken(HttpServletRequest request,
+ HttpServletResponse response,
+ User user,
+ HttpSession session)
+ throws IOException, ServletException, NoSuchAlgorithmException {
- protected void actionModifyBookmark(HttpServletRequest request,
- HttpServletResponse response,
- User user)
- throws IOException {
- String link = request.getParameter("url"); // bowServletUrl of the website
- String name = request.getParameter("name"); // website name
- String alias = request.getParameter("alias");
- String tags = request.getParameter("tags");
- String id = request.getParameter("bookmarkId");
- WikittyProxy proxy = BowProxy.getInstance();
- Bookmark bookmark = proxy.restore(Bookmark.class, id);
- if (bookmark != null) {
- if (alias != null && !alias.isEmpty()) {
- 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);
- }
- redirectToTheGoodPage(request, response);
- }
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = Search.query().eq(Token.FQ_FIELD_EMAIL, user.getEmail()).criteria();
+ Token currentToken = proxy.findByCriteria(Token.class, criteria);
+ if (currentToken != null) {
+ String id = currentToken.getWikittyId();
+ proxy.delete(id);
+ }
+ TokenActions tokenActions = (TokenActions) session.getAttribute("tokenActions");
+ if (tokenActions != null) {
+ String token = tokenActions.generateToken(); // Generate an encoding MD5 token
+ criteria = Search.query().eq(Token.FQ_FIELD_TOKEN, token).criteria();
+ Token oldToken = proxy.findByCriteria(Token.class, criteria);
+ if (oldToken == null) { // Check if the token already exists
+ TokenImpl newToken = new TokenImpl();
+ newToken.setToken(token);
+ newToken.setEmail(user.getEmail());
+ proxy.store((Token) newToken); // If the token doesn't exist, it is stored
+ tokenActions.setPermanentToken(token);
+ } else {
+ tokenActions.setPermanentToken("");
+ }
+ }
+ }
- /* @param request servlet request
- * @param response servlet response
- * @param user User user
- * @throws ServletException if a servlet error occurs
- * @description add a new bookmark
- */
- protected void actionAddUrl(HttpServletRequest request,
- HttpServletResponse response,
- User user)
- throws IOException, ServletException {
- addUrl(request, user);
- redirectToTheGoodPage(request, response);
- }
+ protected void actionModifyBookmark(HttpServletRequest request,
+ HttpServletResponse response,
+ User user)
+ throws IOException {
+ String link = request.getParameter("url"); // bowServletUrl of the website
+ String name = request.getParameter("name"); // website name
+ String alias = request.getParameter("alias");
+ String tags = request.getParameter("tags");
+ String id = request.getParameter("bookmarkId");
+ WikittyProxy proxy = BowProxy.getInstance();
+ Bookmark bookmark = proxy.restore(Bookmark.class, id);
+ if (bookmark != null) {
+ if (alias != null && !alias.isEmpty()) {
+ 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);
+ }
+ redirectToTheGoodPage(request, response);
+ }
- protected void addUrl(HttpServletRequest request, User user) {
- String link = request.getParameter("url"); // bowServletUrl 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
- if (alias != null && !alias.isEmpty()) {
- 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");
- if (nameAndTags != null) {
- bookmark = BookmarkActions.createBookmark(link, nameAndTags, user);
- }
- }
- if (bookmark != null && !bookmark.getDescription().isEmpty() && !bookmark.getEmail().isEmpty()) {
- proxy.store(bookmark); // store the bookmark if everything is ok
- if (log.isDebugEnabled()) {
- log.debug("Adding URL");
- }
- }
- }
- /* @param token String token
- * @param session HttpSession session
- * @return User
- * @description check if the token is valid and return the
- * token owner
- */
- protected User checkToken(String token, HttpSession session) {
- if (checkTemporaryToken(token, session)) {
- User user = (User) session.getAttribute("user");
- return user;
- }
- User user = checkPermanentToken(token);
- return user;
- }
+ /* @param request servlet request
+ * @param response servlet response
+ * @param user User user
+ * @throws ServletException if a servlet error occurs
+ * @description add a new bookmark
+ */
+ protected void actionAddUrl(HttpServletRequest request,
+ HttpServletResponse response,
+ User user)
+ throws IOException, ServletException {
+ addUrl(request, user);
+ redirectToTheGoodPage(request, response);
+ }
- /* @param token String which contains the MD5 encoding token
- * @return null the token doesn't exist
- * @return User the token owner
- */
- protected User checkPermanentToken(String token) {
- if (token != null) {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = Search.query().eq(Token.FQ_FIELD_TOKEN, token).criteria();
- Token DbToken = proxy.findByCriteria(Token.class, criteria);
- if (DbToken != null) { // check if the token exists
- String userEmail = DbToken.getEmail(); // the token owner user name (email)
- criteria = Search.query().eq(User.FQ_FIELD_EMAIL, userEmail).criteria(); // retrieve user by token
- return proxy.findByCriteria(User.class, criteria);
- }
- }
- return null;
- }
+ protected void addUrl(HttpServletRequest request, User user) {
+ String link = request.getParameter("url"); // bowServletUrl 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
+ if (alias != null && !alias.isEmpty()) {
+ 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");
+ if (nameAndTags != null) {
+ bookmark = BookmarkActions.createBookmark(link, nameAndTags, user);
+ }
+ }
+ if (bookmark != null && !bookmark.getDescription().isEmpty() && !bookmark.getEmail().isEmpty()) {
+ proxy.store(bookmark); // store the bookmark if everything is ok
+ if (log.isDebugEnabled()) {
+ log.debug("Adding URL");
+ }
+ }
+ }
+ /* @param token String token
+ * @param session HttpSession session
+ * @return User
+ * @description check if the token is valid and return the
+ * token owner
+ */
+ protected User checkToken(String token, HttpSession session) {
+ if (checkTemporaryToken(token, session)) {
+ User user = (User) session.getAttribute("user");
+ return user;
+ }
+ User user = checkPermanentToken(token);
+ return user;
+ }
- /* @param token String which contains the MD5 encoding token
- * @return null the token doesn't exist
- * @return User the token owner
- */
- protected boolean checkTemporaryToken(String token, HttpSession session) {
- TokenActions tokenActions = (TokenActions) session.getAttribute("tokenActions");
- if (tokenActions != null) {
- String temporaryToken = tokenActions.getTemporaryToken();
- if (temporaryToken != null) {
- if (temporaryToken.equals(token)) {
- return true;
- }
- }
- }
- return false;
- }
+ /* @param token String which contains the MD5 encoding token
+ * @return null the token doesn't exist
+ * @return User the token owner
+ */
+ protected User checkPermanentToken(String token) {
+ if (token != null) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = Search.query().eq(Token.FQ_FIELD_TOKEN, token).criteria();
+ Token DbToken = proxy.findByCriteria(Token.class, criteria);
+ if (DbToken != null) { // check if the token exists
+ String userEmail = DbToken.getEmail(); // the token owner user name (email)
+ criteria = Search.query().eq(User.FQ_FIELD_EMAIL, userEmail).criteria(); // retrieve user by token
+ return proxy.findByCriteria(User.class, criteria);
+ }
+ }
+ return null;
+ }
- /* @param request servlet request
- * @param response servlet response
- * @param user User user
- * @throws ServletException if a servlet error occurs
- * @description set the bookmarks and the tagCloud by search
- * or tag addition
- */
- protected void actionSearch(HttpServletRequest request, User user)
- throws IOException, ServletException {
- String searchLine = request.getParameter("searchLine");
- if (searchLine == null) {
- searchLine = "";
- }
- String fulltext = request.getParameter("fullTextLine");
- if (fulltext != null && !fulltext.isEmpty() && searchLine.isEmpty()) {
- actionFullText(request, user);
- } else {
- String tag = request.getParameter("addTag");
- if (tag != null && !tag.isEmpty()) {
- if (searchLine.isEmpty()) {
- searchLine = tag;
- } else {
- searchLine += " " + tag;
- }
- }
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = getBookmarkListCriteriaByUser(user, searchLine);
- criteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK);
- PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria); // select all bookmarks by user
- BookmarkActions bookmarkActions = createBookmarkActions(request, result, searchLine);
- request.setAttribute("bookmarkActions", bookmarkActions);
- }
- }
+ /* @param token String which contains the MD5 encoding token
+ * @return null the token doesn't exist
+ * @return User the token owner
+ */
+ protected boolean checkTemporaryToken(String token, HttpSession session) {
+ TokenActions tokenActions = (TokenActions) session.getAttribute("tokenActions");
+ if (tokenActions != null) {
+ String temporaryToken = tokenActions.getTemporaryToken();
+ if (temporaryToken != null) {
+ if (temporaryToken.equals(token)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
- /* @param request servlet request
- * @param result PageResult result
- * @param searchLine String searchLine
- * @return bookmarkActions the bookmarkAction
- * @description create the tagCLoud by research type
- */
- protected BookmarkActions createBookmarkActions(HttpServletRequest request,
- PagedResult<Bookmark> result,
- String searchLine) {
- String fullText = request.getParameter("fullTextLine");
- BookmarkActions bookmarkActions = new BookmarkActions();
- bookmarkActions.setFullTextLine(fullText);
- List<Bookmark> bookList = result.getAll();
- if (bookList != null) {
- bookmarkActions.setBookmarks(bookList);
- }
- if (fullText == null || fullText.isEmpty()) {
- if (searchLine != null && searchLine.isEmpty()) {
- bookmarkActions.emptySearchline();
- } else {
- bookmarkActions.addTags(searchLine); // add the new tags
- }
- }
- List<FacetTopic> topics = result.getTopic(Bookmark.FQ_FIELD_TAGS);
- bookmarkActions.createTagCloud(topics);
- return bookmarkActions;
- }
+ /* @param request servlet request
+ * @param response servlet response
+ * @param user User user
+ * @throws ServletException if a servlet error occurs
+ * @description set the bookmarks and the tagCloud by search
+ * or tag addition
+ */
+ protected void actionSearch(HttpServletRequest request, User user)
+ throws IOException, ServletException {
+ String searchLine = request.getParameter("searchLine");
+ if (searchLine == null) {
+ searchLine = "";
+ }
+ String fulltext = request.getParameter("fullTextLine");
+ if (fulltext != null && !fulltext.isEmpty() && searchLine.isEmpty()) {
+ actionFullText(request, user);
+ } else {
+ String tag = request.getParameter("addTag");
+ if (tag != null && !tag.isEmpty()) {
+ if (searchLine.isEmpty()) {
+ searchLine = tag;
+ } else {
+ searchLine += " " + tag;
+ }
+ }
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = getBookmarkListCriteriaByUser(user, searchLine);
+ criteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK);
+ PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria); // select all bookmarks by user
+ BookmarkActions bookmarkActions = createBookmarkActions(request, result, searchLine);
+ request.setAttribute("bookmarkActions", bookmarkActions);
+ }
+ }
- /* @param request servlet request
- * @param response servlet response
- * @param session HttpSession session
- * @throws ServletException if a servlet error occurs
- * @description check if the registration is correct or not
- */
- protected void actionRegister(HttpServletRequest request,
- HttpServletResponse response,
- HttpSession session)
- throws IOException, ServletException, NoSuchAlgorithmException, MessagingException {
- String email = request.getParameter("email");
- if (email != null) {
- email = email.trim();
- String password = request.getParameter("password");
- String md5;
- if (password != null) {
- md5 = StringUtil.encodeMD5(password);
- if (!checkRegister(email, md5, request)) { // check if all is well
- WikittyProxy proxy = BowProxy.getInstance();
- UserImpl newUser = new UserImpl();
- newUser.setPassword(md5);
- newUser.setEmail(email);
- User login = proxy.store((User) newUser); // store the new user
- if (login != null) {
- initSession(session, login);
- initHomePage(request, login);
- sendMail(email, password);
- request.getRequestDispatcher("home.jsp").forward(request, response);
- return ;
- }
- request.setAttribute("errorMsgUser", "Invalid login, please choose another one");
+ /* @param request servlet request
+ * @param result PageResult result
+ * @param searchLine String searchLine
+ * @return bookmarkActions the bookmarkAction
+ * @description create the tagCLoud by research type
+ */
+ protected BookmarkActions createBookmarkActions(HttpServletRequest request,
+ PagedResult<Bookmark> result,
+ String searchLine) {
+ String fullText = request.getParameter("fullTextLine");
+ BookmarkActions bookmarkActions = new BookmarkActions();
+ bookmarkActions.setFullTextLine(fullText);
+ List<Bookmark> bookList = result.getAll();
+ if (bookList != null) {
+ bookmarkActions.setBookmarks(bookList);
}
- }
+ if (fullText == null || fullText.isEmpty()) {
+ if (searchLine != null && searchLine.isEmpty()) {
+ bookmarkActions.emptySearchline();
+ } else {
+ bookmarkActions.addTags(searchLine); // add the new tags
+ }
+ }
+ List<FacetTopic> topics = result.getTopic(Bookmark.FQ_FIELD_TAGS);
+ bookmarkActions.createTagCloud(topics);
+ return bookmarkActions;
}
- request.getRequestDispatcher("register.jsp").forward(request, response);
- }
- /* @param request servlet request
- * @param response servlet response
- * @param session HttpSession session
- * @throws ServletException if a servlet error occurs
- * @description check if the authentication is correct or not
- */
- protected void actionLogin(HttpServletRequest request,
- HttpServletResponse response,
- HttpSession session)
- throws IOException, ServletException, NoSuchAlgorithmException {
- String email = request.getParameter("email");
- if (email != null) {
- email = email.trim();
- String password = request.getParameter("password");
- String md5;
- if (password != null) {
- md5 = StringUtil.encodeMD5(password);
- User login = checkLogin(email, md5, request); // check if the user exists
- if (login != null) {
- initSession(session, login);
- initHomePage(request, login);
- request.getRequestDispatcher("home.jsp").forward(request, response);
- return;
- }
- }
- }
- request.getRequestDispatcher("login.jsp").forward(request, response);
- }
+ /* @param request servlet request
+ * @param response servlet response
+ * @param session HttpSessiorn session
+ * @throws ServletException if a servlet error occurs
+ * @description check if the registration is correct or not
+ */
+ protected void actionRegister(HttpServletRequest request, HttpServletResponse response, HttpSession session)
+ throws IOException, ServletException, NoSuchAlgorithmException, MessagingException {
+ String email = request.getParameter("email");
+ if (email != null) {
+ email = email.trim();
+ String password = request.getParameter("password");
+ String repeatPassword = request.getParameter("repeatPassword");
+ String md5;
- protected void checkAdmin(String login, HttpSession session) {
- String[] admins = BowConfig.getInstance().getAdmins();
- if (admins != null) {
- for (String admin : admins) {
- if (login.equals(admin)) {
- session.setAttribute("admin", true);
- return;
- }
- }
- }
- session.setAttribute("admin", false);
- }
+ if (password == null) {
+ request.setAttribute("errorMsgUser", "Invalid password, password must not be null ");
- /* @param session HttpSession session
- * @throws ServletException if a servlet error occurs
- * @description retrieve tokens or create there if the user are just
- * registered
- */
- protected void initializeToken(HttpSession session, User login)
- throws NoSuchAlgorithmException {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = Search.query().eq(Token.FQ_FIELD_EMAIL, login.getEmail()).criteria();
- Token token = proxy.findByCriteria(Token.class, criteria);
- TokenActions tokenActions = new TokenActions();
- if (token == null) {
- token = new TokenImpl();
- String newToken = tokenActions.generateToken();
- token.setToken(newToken);
- token.setEmail(login.getEmail());
- proxy.store(token);
- }
- tokenActions.setPermanentToken(token.getToken());
- String temporaryToken = tokenActions.generateToken();
- tokenActions.setTemporaryToken(temporaryToken);
- session.setAttribute("tokenActions", tokenActions);
- }
+ } else if (!password.equals(repeatPassword)) {
+ request.setAttribute("errorMsgUser", "Invalid password, you have not type twice the same password.");
+ } else {
+ md5 = StringUtil.encodeMD5(password);
+ if (!checkRegister(email, md5, request)) { // check if all is well
+ WikittyProxy proxy = BowProxy.getInstance();
+ UserImpl newUser = new UserImpl();
+ newUser.setPassword(md5);
+ newUser.setEmail(email);
+ User login = proxy.store((User) newUser); // store the new user
- /* @param email String which contains the user name (email)
- * @param password String which contains the user password
- * @return null the user doesn't exist
- * @return User the user exists
- */
- protected User checkLogin(String email,
- String password,
- HttpServletRequest request) throws NoSuchAlgorithmException {
- if (email != null && password != null) {
- if (!email.isEmpty() && !password.equals(StringUtil.encodeMD5(""))) {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = Search.query().eq(User.FQ_FIELD_EMAIL, email).
- eq(User.FQ_FIELD_PASSWORD, password).criteria();
- User user = proxy.findByCriteria(User.class, criteria);
-
- if (user == null) {
- request.setAttribute("errorMsgUser", "Unknown email or incorrect password");
- }
- return user; // retrieve user by user name (email) and password
- }
- }
- request.setAttribute("errorMsgUser", "Please enter your email address and your password");
- return null;
- }
+ if (login != null) {
+ initSession(session, login);
+ initHomePage(request, login);
+ sendMail(email, password);
+ request.getRequestDispatcher("home.jsp").forward(request, response);
+ } else {
+ request.setAttribute("errorMsgUser", "Invalid login, please choose another one");
+ }
+ }
+ }
+ request.getRequestDispatcher("register.jsp").forward(request, response);
+ }
+ }
- /* @param email String which contains the user name (email)
- * @param password String which contains the user password
- * @return boolean false if the user doesn't exist or true
- */
- protected boolean checkRegister(String email,
- String password,
- HttpServletRequest request) throws NoSuchAlgorithmException {
- if (email != null && password != null) {
- if (!email.isEmpty() && !password.equals(StringUtil.encodeMD5(""))) {
- WikittyProxy proxy = BowProxy.getInstance();
+ /* @param request servlet request
+ * @param response servlet response
+ * @param session HttpSession session
+ * @throws ServletException if a servlet error occurs
+ * @description check if the authentication is correct or not
+ */
+ protected void actionLogin(HttpServletRequest request,
+ HttpServletResponse response,
+ HttpSession session)
+ throws IOException, ServletException, NoSuchAlgorithmException {
+ String email = request.getParameter("email");
+ if (email != null) {
+ email = email.trim();
+ String password = request.getParameter("password");
+ String md5;
+ if (password != null) {
+ md5 = StringUtil.encodeMD5(password);
+ User login = checkLogin(email, md5, request); // check if the user exists
+ if (login != null) {
+ initSession(session, login);
+ initHomePage(request, login);
+ request.getRequestDispatcher("home.jsp").forward(request, response);
+ return;
+ }
+ }
+ }
+ request.getRequestDispatcher("login.jsp").forward(request, response);
+ }
- Criteria criteria = Search.query().eq(User.FQ_FIELD_EMAIL, email).criteria(); // retrieve user by user name (email)
- if (proxy.findByCriteria(User.class, criteria) == null) {
- return false;
- }
- request.setAttribute("errorMsgUser", "This email address is already used");
- return true;
- }
- }
- request.setAttribute("errorMsgUser", "Email and password must be correctly filled");
- return true;
- }
+ protected void checkAdmin(String login, HttpSession session) {
+ String[] admins = BowConfig.getInstance().getAdmins();
+ if (admins != null) {
+ for (String admin : admins) {
+ if (login.equals(admin)) {
+ session.setAttribute("admin", true);
+ return;
+ }
+ }
+ }
+ session.setAttribute("admin", false);
+ }
- protected void initHomePage(HttpServletRequest request, User user) {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = getBookmarkListCriteriaByUser(user, null);
- if (criteria != null) {
- Criteria sortCriteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK);
- PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, sortCriteria); // select all bookmarks by user
- sortCriteria = criteria.addSortDescending(Bookmark.FQ_FIELD_DATE).setEndIndex(10);
- List<Bookmark> lastBookmarks = proxy.findAllByCriteria(Bookmark.class, sortCriteria).getAll();
- BookmarkActions bookmarkActions = createBookmarkActions(request, result, null);
- bookmarkActions.setTagSearch(null);
- List<Bookmark> bookList = bookmarkActions.getBookmarks();
- if (bookList.size() > 10) {
- bookList = bookmarkActions.getBookmarks().subList(0, 10);
- bookmarkActions.setBookmarks(bookList);
- }
- if (lastBookmarks != null) {
- bookmarkActions.setLastBookmarks(lastBookmarks);
- }
- request.setAttribute("bookmarkActions", bookmarkActions);
- }
- }
-
- protected void initSession(HttpSession session, User user) throws NoSuchAlgorithmException {
- WikittyProxy proxy = BowProxy.getInstance();
- session.setAttribute("user", user);
- Preference preference = proxy.restore(Preference.class, user.getWikittyId());
- session.setAttribute("preference", preference);
- initializeToken(session, user);
- checkAdmin(user.getEmail(), session);
- }
-
- /* @param request servlet request
- * @param user User user
- * @description initialize all for the home page
- */
- protected void actionHome(HttpServletRequest request,
- HttpServletResponse response,
- HttpSession session)
- throws ServletException, IOException, NoSuchAlgorithmException {
- User user = (User) session.getAttribute("user");
- if (user == null) {
- String token = request.getParameter("token");
- user = checkPermanentToken(token);
- if (user != null) {
- initSession(session, user);
- }
- }
- if (user != null) {
- initHomePage(request, user);
- request.getRequestDispatcher("home.jsp").forward(request, response);
- } else {
- request.getRequestDispatcher("login.jsp").forward(request, response);
- }
- }
+ /* @param session HttpSession session
+ * @throws ServletException if a servlet error occurs
+ * @description retrieve tokens or create there if the user are just
+ * registered
+ */
+ protected void initializeToken(HttpSession session, User login)
+ throws NoSuchAlgorithmException {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = Search.query().eq(Token.FQ_FIELD_EMAIL, login.getEmail()).criteria();
+ Token token = proxy.findByCriteria(Token.class, criteria);
+ TokenActions tokenActions = new TokenActions();
+ if (token == null) {
+ token = new TokenImpl();
+ String newToken = tokenActions.generateToken();
+ token.setToken(newToken);
+ token.setEmail(login.getEmail());
+ proxy.store(token);
+ }
+ tokenActions.setPermanentToken(token.getToken());
+ String temporaryToken = tokenActions.generateToken();
+ tokenActions.setTemporaryToken(temporaryToken);
+ session.setAttribute("tokenActions", tokenActions);
+ }
- protected void createImportExtension(List<Bookmark> bookmarks) {
- if (bookmarks != null && !bookmarks.isEmpty()) {
- WikittyProxy proxy = BowProxy.getInstance();
- List<String> ids = new ArrayList<String>();
- for (Bookmark bookmark : bookmarks) {
- String id = bookmark.getWikittyId();
- ids.add(id);
- }
- Date date = new Date();
- List<Import> imports = proxy.restore(Import.class, ids);
- for (Import imp : imports) {
- imp.setDate(date);
- }
- proxy.store(imports);
- }
- }
-
- protected void getBookmarksByImportDate(HttpServletRequest request, User user) {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Import.EXT_IMPORT).eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria().
- addFacetField(Import.FQ_FIELD_DATE);
- List<FacetTopic> bookmarksImportDate = proxy.findAllByCriteria(Import.class, criteria).getTopic(Import.FQ_FIELD_DATE);
- request.setAttribute("bookmarksImportDate", bookmarksImportDate);
- }
-
- /* @param request servlet request
- * @param response servlet response
- * @param user User user
- * @throws ServletException if a servlet error occurs
- * @description import bookmark for an user
- */
- protected void actionImportBookmarks(HttpServletRequest request, HttpServletResponse response, User user)
- throws IOException, FileUploadException, ServletException {
- // Check that we have a file upload request
- boolean isMultipart = ServletFileUpload.isMultipartContent(request);
- if (isMultipart) {
- // Create a factory for disk-based file items
- DiskFileItemFactory factory = new DiskFileItemFactory();
- // Create a new file upload handler
- ServletFileUpload upload = new ServletFileUpload(factory);
- // Process the uploaded items
- // Parse the request
- List<?> items = upload.parseRequest(request);
- for (Object obj : items) {
- FileItem item = (FileItem) obj;
- if (!item.isFormField()) {
- WikittyProxy proxy = BowProxy.getInstance();
- String content = item.getString();
- try {
- Parser parser = new Parser(content);
- NodeList list = parser.parse(null);
- List<Bookmark> bookmarks = new ArrayList<Bookmark>();
- parseHtmlToBookmarks(list, user, bookmarks, new ArrayList<String>());
- bookmarks = proxy.store(bookmarks);
- createImportExtension(bookmarks);
- initHomePage(request, user);
- request.getRequestDispatcher("home.jsp").forward(request, response);
- }
- catch (ParserException e) {
- request.setAttribute("errorMsgUser", "Bad bookmarks file format, expected Netscape-like bookmarks file");
- request.setAttribute("errorMsgTech", e.getMessage());
-
- String searchLine = request.getParameter("searchLine");
- if (searchLine == null) {
- initHomePage(request, user);
- request.getRequestDispatcher("home.jsp").forward(request, response);
- } else {
- actionSearch(request, user);
- request.getRequestDispatcher("search.jsp").forward(request, response);
- }
- }
- }
- }
- }
- }
- /* @param list NodeList list
- * @param bookmarks List<Bookmark> bookmarks
- * @param tagList List<String> tagList
- * @throws ParserException if a parser error occurs
- * @description parse the html by recursion and retrieve bookmarks
- */
- protected void parseHtmlToBookmarks(NodeList list, User user, List<Bookmark> bookmarks, List<String> tagList)
- throws ParserException {
- if (list != null) {
- boolean isFolder = false;
- SimpleNodeIterator it = list.elements();
- while (it.hasMoreNodes()) {
- Node node = it.nextNode();
- String plainText = node.toPlainTextString(); // the text between two heads ==> <toto>plainText</toto>
- String text = node.getText(); // the text in the head ==> <text></toto>
- if (text != null && text.startsWith("H3")) { // H3 = folder
- if (plainText != null && !plainText.isEmpty()) {
- tagList.add(plainText); // add the folder name to the tagList
- isFolder = true;
- }
- } else if (text != null && text.startsWith("A HREF")) { // HREF = new bookmarks
- Bookmark bookmark = BookmarkActions.createBookmarkFromHtml(text, plainText, user);
- BookmarkActions.addTagsToBookmark(tagList, bookmark);
- if (bookmark != null) {
- bookmarks.add(bookmark);
- }
- }
- NodeList children = node.getChildren();
- if (children != null) {
- parseHtmlToBookmarks(children, user, bookmarks, tagList); // if there is an under node = recursion
- }
- }
- if (isFolder) { // if we find a folder, we have to remove it
- int index = tagList.size() - 1;
- if (index > -1) {
- tagList.remove(index);
- }
- }
- }
- }
+ /* @param email String which contains the user name (email)
+ * @param password String which contains the user password
+ * @return null the user doesn't exist
+ * @return User the user exists
+ */
+ protected User checkLogin(String email,
+ String password,
+ HttpServletRequest request) throws NoSuchAlgorithmException {
+ if (email != null && password != null) {
+ if (!email.isEmpty() && !password.equals(StringUtil.encodeMD5(""))) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = Search.query().eq(User.FQ_FIELD_EMAIL, email).
+ eq(User.FQ_FIELD_PASSWORD, password).criteria();
+ User user = proxy.findByCriteria(User.class, criteria);
- /* @param response servlet response
- * @param user User user
- * @description export bookmarks
- */
- protected void actionExportBookmarks(HttpServletResponse response, User user)
- throws IOException {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria();
- List<Bookmark> bookmarks = proxy.findAllByCriteria(Bookmark.class, criteria).getAll();
- String export = BookmarkActions.getExportHtmlBookmark(bookmarks);
- byte[] buff = export.getBytes();
- ServletOutputStream op = response.getOutputStream();
- response.setContentType("application/octet-stream");
- response.setHeader("Content-Disposition", "attachment; filename=\"bookmarks.html\"");
- response.setContentLength(buff.length);
- op.write(buff, 0, buff.length);
- op.flush();
- op.close();
- }
+ if (user == null) {
+ request.setAttribute("errorMsgUser", "Unknown email or incorrect password");
+ }
+ return user; // retrieve user by user name (email) and password
+ }
+ }
+ request.setAttribute("errorMsgUser", "Please enter your email address and your password");
+ return null;
+ }
- /* @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet error occurs
- * @description add an alias for one bookmark
- */
- protected void actionAddAlias(HttpServletRequest request, HttpServletResponse response)
- throws IOException {
- String alias = request.getParameter("alias");
- if (alias != null && !alias.isEmpty()) {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_ALIAS, alias).criteria();
- List<Bookmark> bookmarks = proxy.findAllByCriteria(Bookmark.class, criteria).getAll();
- if (bookmarks == null || bookmarks.isEmpty()) {
- String id = request.getParameter("bookmarkId");
- if (id != null && !id.isEmpty()) {
- Bookmark bookmark = proxy.restore(Bookmark.class, id);
- if (bookmark != null) {
- bookmark.setAlias(alias);
- proxy.store(bookmark);
- }
- }
- }
- }
- redirectToTheGoodPage(request, response);
- }
- /* @param request servlet request
- * @param user User user
- * @throws ServletException if a servlet error occurs
- * @description retrieve bookmark for the full text research
- */
- protected void actionFullText(HttpServletRequest request, User user) throws IOException, ServletException {
- String fullText = request.getParameter("fullTextLine");
- if (fullText == null || fullText.isEmpty()) {
- actionSearch(request, user);
- } else {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria;
- if (!fullText.isEmpty()) {
- criteria = Search.query().keyword(fullText).
- eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria().
- addFacetField(Bookmark.FQ_FIELD_TAGS);
-
- } else {
- criteria = getBookmarkListCriteriaByUser(user, null);
- }
- PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria);
- BookmarkActions bookmarkActions = createBookmarkActions(request, result, null);
- request.setAttribute("bookmarkActions", bookmarkActions);
- }
- }
+ /* @param email String which contains the user name (email)
+ * @param password String which contains the user password
+ * @return boolean false if the user doesn't exist or true
+ */
+ protected boolean checkRegister(String email,
+ String password,
+ HttpServletRequest request) throws NoSuchAlgorithmException {
+ if (email != null && password != null) {
+ if (!email.isEmpty() && !password.equals(StringUtil.encodeMD5(""))) {
+ WikittyProxy proxy = BowProxy.getInstance();
- /* @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet error occurs
- * @description choose the good page
- */
- protected void redirectToTheGoodPage(HttpServletRequest request, HttpServletResponse response)
- throws IOException {
- String searchLine = request.getParameter("searchLine");
- String fullText = request.getParameter("fullTextLine");
- if (fullText == null) {
- fullText = "";
- }
- if (searchLine != null) {
- response.sendRedirect("bow?action=search&searchLine=" + searchLine + "&fullTextLine=" + fullText);
- } else {
- response.sendRedirect("bow?action=home");
- }
- }
+ Criteria criteria = Search.query().eq(User.FQ_FIELD_EMAIL, email).criteria(); // retrieve user by user name (email)
+ if (proxy.findByCriteria(User.class, criteria) == null) {
+ return false;
+ }
+ request.setAttribute("errorMsgUser", "This email address is already used");
+ return true;
+ }
+ }
+ request.setAttribute("errorMsgUser", "Email and password must be correctly filled");
+ return true;
+ }
- /* @param user User user
- * @param searchLine String searchLine
- * @description return the bookmark criteria by search
- */
- protected Criteria getBookmarkListCriteriaByUser(User user, String searchLine) {
- Criteria criteria = null;
- if (user != null) {
- if (searchLine != null && !searchLine.isEmpty()) {
- String[] words = searchLine.split("\\s+"); // put the tags in an array
- List<String> tags = new ArrayList<String>(Arrays.asList(words));
- criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).
- eq(Bookmark.FQ_FIELD_TAGS, tags).criteria().addFacetField(Bookmark.FQ_FIELD_TAGS);
- } else {
- criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).
- criteria().addFacetField(Bookmark.FQ_FIELD_TAGS);
- }
- }
- return criteria;
- }
+ protected void initHomePage(HttpServletRequest request, User user) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = getBookmarkListCriteriaByUser(user, null);
+ if (criteria != null) {
+ Criteria sortCriteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK);
+ PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, sortCriteria); // select all bookmarks by user
+ sortCriteria = criteria.addSortDescending(Bookmark.FQ_FIELD_DATE).setEndIndex(10);
+ List<Bookmark> lastBookmarks = proxy.findAllByCriteria(Bookmark.class, sortCriteria).getAll();
+ BookmarkActions bookmarkActions = createBookmarkActions(request, result, null);
+ bookmarkActions.setTagSearch(null);
+ List<Bookmark> bookList = bookmarkActions.getBookmarks();
+ if (bookList.size() > 10) {
+ bookList = bookmarkActions.getBookmarks().subList(0, 10);
+ bookmarkActions.setBookmarks(bookList);
+ }
+ if (lastBookmarks != null) {
+ bookmarkActions.setLastBookmarks(lastBookmarks);
+ }
+ request.setAttribute("bookmarkActions", bookmarkActions);
+ }
+ }
- protected Preference changePreference(HttpServletRequest request, HttpSession session) {
+ protected void initSession(HttpSession session, User user) throws NoSuchAlgorithmException {
+ WikittyProxy proxy = BowProxy.getInstance();
+ session.setAttribute("user", user);
+ Preference preference = proxy.restore(Preference.class, user.getWikittyId());
+ session.setAttribute("preference", preference);
+ initializeToken(session, user);
+ checkAdmin(user.getEmail(), session);
+ }
- Preference preference = (Preference) session.getAttribute("preference");
- // Retrieve Preference fields
- String colors = request.getParameter("colors");
- String tags = request.getParameter("tagsNb");
- String bookmarks = request.getParameter("bookmarks");
- String searchEngineSuggestions = request.getParameter("searchEngineUrlSuggestions");
- String searchEngineResults = request.getParameter("searchEngineUrlResults");
+ /* @param request servlet request
+ * @param user User user
+ * @description initialize all for the home page
+ */
+ protected void actionHome(HttpServletRequest request,
+ HttpServletResponse response,
+ HttpSession session)
+ throws ServletException, IOException, NoSuchAlgorithmException {
+ User user = (User) session.getAttribute("user");
+ if (user == null) {
+ String token = request.getParameter("token");
+ user = checkPermanentToken(token);
+ if (user != null) {
+ initSession(session, user);
+ }
+ }
+ if (user != null) {
+ initHomePage(request, user);
+ request.getRequestDispatcher("home.jsp").forward(request, response);
+ } else {
+ request.getRequestDispatcher("login.jsp").forward(request, response);
+ }
+ }
- preference.setColors(colors);
- preference.setTags(Integer.valueOf(tags));
- preference.setBookmarks(Integer.valueOf(bookmarks));
- preference.setSearchEngineUrlSuggestions(searchEngineSuggestions);
- preference.setSearchEngineUrlResults(searchEngineResults);
+ protected void createImportExtension(List<Bookmark> bookmarks) {
+ if (bookmarks != null && !bookmarks.isEmpty()) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ List<String> ids = new ArrayList<String>();
+ for (Bookmark bookmark : bookmarks) {
+ String id = bookmark.getWikittyId();
+ ids.add(id);
+ }
+ Date date = new Date();
+ List<Import> imports = proxy.restore(Import.class, ids);
+ for (Import imp : imports) {
+ imp.setDate(date);
+ }
+ proxy.store(imports);
+ }
+ }
- return preference;
- }
-
- protected User changeUser(HttpServletRequest request, User newUser)
- throws NoSuchAlgorithmException {
- String email = request.getParameter("email");
- String newPassword = request.getParameter("newPassword");
- String currentPassword = request.getParameter("currentPassword");
- String confirmNewPassword = request.getParameter("confirmNewPassword");
+ protected void getBookmarksByImportDate(HttpServletRequest request, User user) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, Import.EXT_IMPORT).eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria().
+ addFacetField(Import.FQ_FIELD_DATE);
+ List<FacetTopic> bookmarksImportDate = proxy.findAllByCriteria(Import.class, criteria).getTopic(Import.FQ_FIELD_DATE);
+ request.setAttribute("bookmarksImportDate", bookmarksImportDate);
+ }
- if (email != null && !email.isEmpty()) {
- newUser.setEmail(email);
- }
- if (newPassword != null && confirmNewPassword != null && currentPassword != null) {
- if (!newPassword.isEmpty() && !confirmNewPassword.isEmpty() && !currentPassword.isEmpty()) {
- if (newPassword.equals(confirmNewPassword)) {
- currentPassword = StringUtil.encodeMD5(currentPassword);
- if (currentPassword.equals(newUser.getPassword())) {
- String md5 = StringUtil.encodeMD5(newPassword);
- newUser.setPassword(md5);
- }
- }
- }
- }
- return newUser;
- }
-
- protected void actionChangePreferences(HttpServletRequest request, HttpSession session, User user)
- throws NoSuchAlgorithmException, AddressException, MessagingException {
+ /* @param request servlet request
+ * @param response servlet response
+ * @param user User user
+ * @throws ServletException if a servlet error occurs
+ * @description import bookmark for an user
+ */
+ protected void actionImportBookmarks(HttpServletRequest request, HttpServletResponse response, User user)
+ throws IOException, FileUploadException, ServletException {
+ // Check that we have a file upload request
+ boolean isMultipart = ServletFileUpload.isMultipartContent(request);
+ if (isMultipart) {
+ // Create a factory for disk-based file items
+ DiskFileItemFactory factory = new DiskFileItemFactory();
+ // Create a new file upload handler
+ ServletFileUpload upload = new ServletFileUpload(factory);
+ // Process the uploaded items
+ // Parse the request
+ List<?> items = upload.parseRequest(request);
+ for (Object obj : items) {
+ FileItem item = (FileItem) obj;
+ if (!item.isFormField()) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ String content = item.getString();
+ try {
+ Parser parser = new Parser(content);
+ NodeList list = parser.parse(null);
+ List<Bookmark> bookmarks = new ArrayList<Bookmark>();
+ parseHtmlToBookmarks(list, user, bookmarks, new ArrayList<String>());
+ bookmarks = proxy.store(bookmarks);
+ createImportExtension(bookmarks);
+ initHomePage(request, user);
+ request.getRequestDispatcher("home.jsp").forward(request, response);
+ }
+ catch (ParserException e) {
+ request.setAttribute("errorMsgUser", "Bad bookmarks file format, expected Netscape-like bookmarks file");
+ request.setAttribute("errorMsgTech", e.getMessage());
- WikittyProxy proxy = BowProxy.getInstance();
+ String searchLine = request.getParameter("searchLine");
+ if (searchLine == null) {
+ initHomePage(request, user);
+ request.getRequestDispatcher("home.jsp").forward(request, response);
+ } else {
+ actionSearch(request, user);
+ request.getRequestDispatcher("search.jsp").forward(request, response);
+ }
+ }
+ }
+ }
+ }
+ }
- Preference preference = changePreference(request, session);
- proxy.store(preference);
+ /* @param list NodeList list
+ * @param bookmarks List<Bookmark> bookmarks
+ * @param tagList List<String> tagList
+ * @throws ParserException if a parser error occurs
+ * @description parse the html by recursion and retrieve bookmarks
+ */
+ protected void parseHtmlToBookmarks(NodeList list, User user, List<Bookmark> bookmarks, List<String> tagList)
+ throws ParserException {
+ if (list != null) {
+ boolean isFolder = false;
+ SimpleNodeIterator it = list.elements();
+ while (it.hasMoreNodes()) {
+ Node node = it.nextNode();
+ String plainText = node.toPlainTextString(); // the text between two heads ==> <toto>plainText</toto>
+ String text = node.getText(); // the text in the head ==> <text></toto>
+ if (text != null && text.startsWith("H3")) { // H3 = folder
+ if (plainText != null && !plainText.isEmpty()) {
+ tagList.add(plainText); // add the folder name to the tagList
+ isFolder = true;
+ }
+ } else if (text != null && text.startsWith("A HREF")) { // HREF = new bookmarks
+ Bookmark bookmark = BookmarkActions.createBookmarkFromHtml(text, plainText, user);
+ BookmarkActions.addTagsToBookmark(tagList, bookmark);
+ if (bookmark != null) {
+ bookmarks.add(bookmark);
+ }
+ }
+ NodeList children = node.getChildren();
+ if (children != null) {
+ parseHtmlToBookmarks(children, user, bookmarks, tagList); // if there is an under node = recursion
+ }
+ }
+ if (isFolder) { // if we find a folder, we have to remove it
+ int index = tagList.size() - 1;
+ if (index > -1) {
+ tagList.remove(index);
+ }
+ }
+ }
+ }
- User newUser = proxy.restore(User.class, user.getWikittyId());
- newUser = changeUser(request, newUser);
- newUser = proxy.store(newUser);
- session.setAttribute("user", newUser);
+ /* @param response servlet response
+ * @param user User user
+ * @description export bookmarks
+ */
+ protected void actionExportBookmarks(HttpServletResponse response, User user)
+ throws IOException {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria();
+ List<Bookmark> bookmarks = proxy.findAllByCriteria(Bookmark.class, criteria).getAll();
+ String export = BookmarkActions.getExportHtmlBookmark(bookmarks);
+ byte[] buff = export.getBytes();
+ ServletOutputStream op = response.getOutputStream();
+ response.setContentType("application/octet-stream");
+ response.setHeader("Content-Disposition", "attachment; filename=\"bookmarks.html\"");
+ response.setContentLength(buff.length);
+ op.write(buff, 0, buff.length);
+ op.flush();
+ op.close();
+ }
- preference = proxy.restore(Preference.class, newUser.getWikittyId());
- session.setAttribute("preference", preference);
- }
+ /* @param request servlet request
+ * @param response servlet response
+ * @throws ServletException if a servlet error occurs
+ * @description add an alias for one bookmark
+ */
+ protected void actionAddAlias(HttpServletRequest request, HttpServletResponse response)
+ throws IOException {
+ String alias = request.getParameter("alias");
+ if (alias != null && !alias.isEmpty()) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = Search.query().eq(Bookmark.FQ_FIELD_ALIAS, alias).criteria();
+ List<Bookmark> bookmarks = proxy.findAllByCriteria(Bookmark.class, criteria).getAll();
+ if (bookmarks == null || bookmarks.isEmpty()) {
+ String id = request.getParameter("bookmarkId");
+ if (id != null && !id.isEmpty()) {
+ Bookmark bookmark = proxy.restore(Bookmark.class, id);
+ if (bookmark != null) {
+ bookmark.setAlias(alias);
+ proxy.store(bookmark);
+ }
+ }
+ }
+ }
+ redirectToTheGoodPage(request, response);
+ }
- protected void sendMail(String email, String password)
- throws AddressException, MessagingException {
+ /* @param request servlet request
+ * @param user User user
+ * @throws ServletException if a servlet error occurs
+ * @description retrieve bookmark for the full text research
+ */
+ protected void actionFullText(HttpServletRequest request, User user) throws IOException, ServletException {
+ String fullText = request.getParameter("fullTextLine");
+ if (fullText == null || fullText.isEmpty()) {
+ actionSearch(request, user);
+ } else {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria;
+ if (!fullText.isEmpty()) {
+ criteria = Search.query().keyword(fullText).
+ eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria().
+ addFacetField(Bookmark.FQ_FIELD_TAGS);
- BowConfig config = BowConfig.getInstance();
- String smtpServer = config.getSmtpServer();
- Properties properties = new Properties();
- properties.put("mail.smtp.host", smtpServer);
+ } else {
+ criteria = getBookmarkListCriteriaByUser(user, null);
+ }
+ PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria);
+ BookmarkActions bookmarkActions = createBookmarkActions(request, result, null);
+ request.setAttribute("bookmarkActions", bookmarkActions);
+ }
+ }
- Session session = Session.getDefaultInstance(properties, null);
- session.setDebug(true);
+ /* @param request servlet request
+ * @param response servlet response
+ * @throws ServletException if a servlet error occurs
+ * @description choose the good page
+ */
+ protected void redirectToTheGoodPage(HttpServletRequest request, HttpServletResponse response)
+ throws IOException {
+ String searchLine = request.getParameter("searchLine");
+ String fullText = request.getParameter("fullTextLine");
+ if (fullText == null) {
+ fullText = "";
+ }
+ if (searchLine != null) {
+ response.sendRedirect("bow?action=search&searchLine=" + searchLine + "&fullTextLine=" + fullText);
+ } else {
+ response.sendRedirect("bow?action=home");
+ }
+ }
- Message msg = new MimeMessage(session);
+ /* @param user User user
+ * @param searchLine String searchLine
+ * @description return the bookmark criteria by search
+ */
+ protected Criteria getBookmarkListCriteriaByUser(User user, String searchLine) {
+ Criteria criteria = null;
+ if (user != null) {
+ if (searchLine != null && !searchLine.isEmpty()) {
+ String[] words = searchLine.split("\\s+"); // put the tags in an array
+ List<String> tags = new ArrayList<String>(Arrays.asList(words));
+ criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).
+ eq(Bookmark.FQ_FIELD_TAGS, tags).criteria().addFacetField(Bookmark.FQ_FIELD_TAGS);
+ } else {
+ criteria = Search.query().eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).
+ criteria().addFacetField(Bookmark.FQ_FIELD_TAGS);
+ }
+ }
+ return criteria;
+ }
- InternetAddress toAddress = new InternetAddress(email);
- msg.addRecipient(Message.RecipientType.TO, toAddress);
+ protected Preference changePreference(HttpServletRequest request, HttpSession session) {
- String addressFrom = config.getAddressFrom();
- InternetAddress fromAddress = new InternetAddress(addressFrom);
- msg.setFrom(fromAddress);
+ Preference preference = (Preference) session.getAttribute("preference");
+ // Retrieve Preference fields
+ String colors = request.getParameter("colors");
+ String tags = request.getParameter("tagsNb");
+ String bookmarks = request.getParameter("bookmarks");
+ String searchEngineSuggestions = request.getParameter("searchEngineUrlSuggestions");
+ String searchEngineResults = request.getParameter("searchEngineUrlResults");
- String messageSubject = "[Bow] New Password";
- msg.setSubject(messageSubject);
+ preference.setColors(colors);
+ preference.setTags(Integer.valueOf(tags));
+ preference.setBookmarks(Integer.valueOf(bookmarks));
+ preference.setSearchEngineUrlSuggestions(searchEngineSuggestions);
+ preference.setSearchEngineUrlResults(searchEngineResults);
- String messageBody = "Hi,\n\n";
- messageBody += "Your new password: " + password + "\n";
- messageBody += "Your email: " + email + "\n\n";
- msg.setContent(messageBody, "text/plain");
+ return preference;
+ }
- Transport.send(msg);
- }
+ protected User changeUser(HttpServletRequest request, User newUser)
+ throws NoSuchAlgorithmException {
+ String email = request.getParameter("email");
+ String newPassword = request.getParameter("newPassword");
+ String currentPassword = request.getParameter("currentPassword");
+ String confirmNewPassword = request.getParameter("confirmNewPassword");
- protected boolean passwordExists(String password) {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = Search.query().eq(User.FQ_FIELD_PASSWORD, password).criteria();
- List<User> users = proxy.findAllByCriteria(User.class, criteria).getAll();
- if (users != null && users.size() > 0) {
- return true;
- }
- return false;
- }
+ if (email != null && !email.isEmpty()) {
+ newUser.setEmail(email);
+ }
+ if (newPassword != null && confirmNewPassword != null && currentPassword != null) {
+ if (!newPassword.isEmpty() && !confirmNewPassword.isEmpty() && !currentPassword.isEmpty()) {
+ if (newPassword.equals(confirmNewPassword)) {
+ currentPassword = StringUtil.encodeMD5(currentPassword);
+ if (currentPassword.equals(newUser.getPassword())) {
+ String md5 = StringUtil.encodeMD5(newPassword);
+ newUser.setPassword(md5);
+ }
+ }
+ }
+ }
+ return newUser;
+ }
- protected void actionSendPassword(HttpServletRequest request, HttpServletResponse response)
- throws NoSuchAlgorithmException, AddressException, MessagingException, ServletException, IOException {
- String email = request.getParameter("email");
- if (email != null) {
- email = email.trim();
- if (!email.isEmpty()) {
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = Search.query().eq(User.FQ_FIELD_EMAIL, email).criteria();
- User user = proxy.findByCriteria(User.class, criteria);
- if (user != null) {
- boolean bool = true;
- String password = "";
- String md5 = "";
- while (bool) {
- password = RandomStringUtils.randomAlphanumeric(20);
- md5 = StringUtil.encodeMD5(password);
- bool = passwordExists(md5);
- }
- sendMail(email, password);
- user.setPassword(md5);
- proxy.store(user);
- request.getRequestDispatcher("login.jsp").forward(request, response);
- } else {
- request.setAttribute("errorMsgUser", "This email address doesn't exist");
- }
- } else {
- request.setAttribute("errorMsgUser", "Please enter an email address");
- }
- }
- request.getRequestDispatcher("forgotPassword.jsp").forward(request, response);
- }
+ protected void actionChangePreferences(HttpServletRequest request, HttpSession session, User user)
+ throws NoSuchAlgorithmException, AddressException, MessagingException {
- protected void actionReIndexation(HttpServletRequest request, HttpSession session, User user) {
- if ((Boolean) session.getAttribute("admin")) {
- WikittyProxy proxy = BowProxy.getInstance();
- proxy.getWikittyService().syncEngin(proxy.getSecurityToken());
+ WikittyProxy proxy = BowProxy.getInstance();
+
+ Preference preference = changePreference(request, session);
+ proxy.store(preference);
+
+ User newUser = proxy.restore(User.class, user.getWikittyId());
+ newUser = changeUser(request, newUser);
+ newUser = proxy.store(newUser);
+ session.setAttribute("user", newUser);
+
+ preference = proxy.restore(Preference.class, newUser.getWikittyId());
+ session.setAttribute("preference", preference);
}
- }
+
+ protected void sendMail(String email, String password)
+ throws AddressException, MessagingException {
+
+ BowConfig config = BowConfig.getInstance();
+ String smtpServer = config.getSmtpServer();
+ Properties properties = new Properties();
+ properties.put("mail.smtp.host", smtpServer);
+
+ Session session = Session.getDefaultInstance(properties, null);
+ session.setDebug(true);
+
+ Message msg = new MimeMessage(session);
+
+ InternetAddress toAddress = new InternetAddress(email);
+ msg.addRecipient(Message.RecipientType.TO, toAddress);
+
+ String addressFrom = config.getAddressFrom();
+ InternetAddress fromAddress = new InternetAddress(addressFrom);
+ msg.setFrom(fromAddress);
+
+ String messageSubject = "[Bow] New Password";
+ msg.setSubject(messageSubject);
+
+ String messageBody = "Hi,\n\n";
+ messageBody += "Your new password: " + password + "\n";
+ messageBody += "Your email: " + email + "\n\n";
+ msg.setContent(messageBody, "text/plain");
+
+ Transport.send(msg);
+ }
+
+ protected boolean passwordExists(String password) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = Search.query().eq(User.FQ_FIELD_PASSWORD, password).criteria();
+ List<User> users = proxy.findAllByCriteria(User.class, criteria).getAll();
+ if (users != null && users.size() > 0) {
+ return true;
+ }
+ return false;
+ }
+
+ protected void actionSendPassword(HttpServletRequest request, HttpServletResponse response)
+ throws NoSuchAlgorithmException, AddressException, MessagingException, ServletException, IOException {
+ String email = request.getParameter("email");
+ if (email != null) {
+ email = email.trim();
+ if (!email.isEmpty()) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = Search.query().eq(User.FQ_FIELD_EMAIL, email).criteria();
+ User user = proxy.findByCriteria(User.class, criteria);
+ if (user != null) {
+ boolean bool = true;
+ String password = "";
+ String md5 = "";
+ while (bool) {
+ password = RandomStringUtils.randomAlphanumeric(20);
+ md5 = StringUtil.encodeMD5(password);
+ bool = passwordExists(md5);
+ }
+ sendMail(email, password);
+ user.setPassword(md5);
+ proxy.store(user);
+ request.getRequestDispatcher("login.jsp").forward(request, response);
+ } else {
+ request.setAttribute("errorMsgUser", "This email address doesn't exist");
+ }
+ } else {
+ request.setAttribute("errorMsgUser", "Please enter an email address");
+ }
+ }
+ request.getRequestDispatcher("forgotPassword.jsp").forward(request, response);
+ }
+
+ protected void actionReIndexation(HttpServletRequest request, HttpSession session, User user) {
+ if ((Boolean) session.getAttribute("admin")) {
+ WikittyProxy proxy = BowProxy.getInstance();
+ proxy.getWikittyService().syncEngin(proxy.getSecurityToken());
+ }
+ }
}
Modified: trunk/src/main/webapp/css/connexion.css
===================================================================
--- trunk/src/main/webapp/css/connexion.css 2010-12-20 13:38:14 UTC (rev 139)
+++ trunk/src/main/webapp/css/connexion.css 2010-12-20 22:31:55 UTC (rev 140)
@@ -78,14 +78,14 @@
color:#804561;
width:225px;
position:relative;
- margin:20px auto;
+ margin:15px auto;
}
-#formFrame form p{
+#formFrame form div{
color:#804561;
font-size:16px;
font-weight:bold;
- padding:15px 0;
+ padding:10px 0;
}
#formFrame form input[type="text"],
Modified: trunk/src/main/webapp/login.jsp
===================================================================
--- trunk/src/main/webapp/login.jsp 2010-12-20 13:38:14 UTC (rev 139)
+++ trunk/src/main/webapp/login.jsp 2010-12-20 22:31:55 UTC (rev 140)
@@ -31,15 +31,17 @@
<div id="formFrame">
<h1>Login</h1>
<form method="post" action="bow?action=login">
- <p>
- <label for="email">Email :</label>
- <input type="text" name="email" id="email" />
- <br /><br />
+ <div>
+ <label for="email">Email :</label>
+ <input type="text" name="email" id="email" />
+ </div>
+ <div>
<label for="password">Password :</label>
<input type="password" name="password" id="password" />
- <br /><br />
+ </div>
+ <div>
<input type="submit" value="Login" />
- </p>
+ </div>
</form>
<a href="bow?action=registration" id="register">Register</a>
<a href="bow?action=forgotPassword" id="forgotPwd">Forgot Your Password?</a>
Modified: trunk/src/main/webapp/register.jsp
===================================================================
--- trunk/src/main/webapp/register.jsp 2010-12-20 13:38:14 UTC (rev 139)
+++ trunk/src/main/webapp/register.jsp 2010-12-20 22:31:55 UTC (rev 140)
@@ -31,15 +31,21 @@
<div id="formFrame">
<h1>Register</h1>
<form method="post" action="bow?action=register">
- <p>
- <label for="email">Email :</label>
- <input type="text" name="email" id="email" />
- <br /><br />
- <label for="password">Password :</label>
- <input type="password" name="password" id="password" />
- <br /><br />
- <input type="submit" value="Register" />
- </p>
+ <div>
+ <label for="email">Email :</label>
+ <input type="text" name="email" id="email" />
+ </div>
+ <div>
+ <label for="password">Password :</label>
+ <input type="password" name="password" id="password" />
+ </div>
+ <div>
+ <label for="repeatPassword">Repeat the password :</label>
+ <input type="password" name="repeatPassword" id="repeatPassword" />
+ </div>
+ <div>
+ <input type="submit" value="Register" />
+ </div>
</form>
<a href="bow" id="register">Login page</a>
</div>
Modified: trunk/src/main/webapp/rightMenu.jsp
===================================================================
--- trunk/src/main/webapp/rightMenu.jsp 2010-12-20 13:38:14 UTC (rev 139)
+++ trunk/src/main/webapp/rightMenu.jsp 2010-12-20 22:31:55 UTC (rev 140)
@@ -79,7 +79,7 @@
<input type="submit" value="Logout" />
</div>
</form>
- <a href="#" class="help">Aide</a>
+ <!--<a href="#" class="help">Aide</a>-->
</div>
<div id="side">
<div id="colonneD">
1
0
Author: kmorin
Date: 2010-12-20 14:38:14 +0100 (Mon, 20 Dec 2010)
New Revision: 139
Url: http://chorem.org/repositories/revision/bow/139
Log:
- add favicon
Added:
trunk/src/main/webapp/img/favicon.png
Modified:
trunk/src/main/webapp/header.jsp
Modified: trunk/src/main/webapp/header.jsp
===================================================================
--- trunk/src/main/webapp/header.jsp 2010-12-19 14:15:36 UTC (rev 138)
+++ trunk/src/main/webapp/header.jsp 2010-12-20 13:38:14 UTC (rev 139)
@@ -34,6 +34,7 @@
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="description" content="Bookmarks On the Web" />
<title>Bow</title>
+ <link rel="icon" type="image/png" href="img/favicon.png" />
<link rel="search" type="application/opensearchdescription+xml" title="bowTemporarySearchEngine" href="<%=url%>?action=temporaryXml" />
<link rel="search" type="application/opensearchdescription+xml" title="bowPermanentSearchEngine" href="<%=url%>?action=permanentXml" />
<link rel="stylesheet" type="text/css" href="./css/global.css" />
Added: trunk/src/main/webapp/img/favicon.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/img/favicon.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
1
0
19 Dec '10
Author: bpoussin
Date: 2010-12-19 15:15:36 +0100 (Sun, 19 Dec 2010)
New Revision: 138
Url: http://chorem.org/repositories/revision/bow/138
Log:
change action '' ':' 't:' 'f:' 'a:'
change preference label (doc) for search engine
Modified:
trunk/src/main/java/org/chorem/bow/ControllerServlet.java
trunk/src/main/webapp/preferences.jsp
Modified: trunk/src/main/java/org/chorem/bow/ControllerServlet.java
===================================================================
--- trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-12-17 13:49:56 UTC (rev 137)
+++ trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-12-19 14:15:36 UTC (rev 138)
@@ -369,12 +369,53 @@
String searchLine = request.getParameter("searchLine");
if (searchLine != null && searchLine.matches("^http://[^ ]*")) {
response.sendRedirect(searchLine);
- } else if (searchLine != null && searchLine.startsWith(":")) {
- searchLine = searchLine.substring(1); // suppress first ":"
+ } else if (searchLine != null
+ && (searchLine.startsWith(":") || searchLine.startsWith("t:")) ) {
+ // on fait une recherche sur les tags
+ int index = searchLine.indexOf(":");
+ searchLine = searchLine.substring(index+1); // suppress first ":"
+
+ session.setAttribute("user", user);
+ initializeToken(session, user);
WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria = getBookmarkListCriteriaByUser(user, searchLine);
+ criteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK);
+ PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria);// retrieve bookmarks by search
+ BookmarkActions bookmarkActions = createBookmarkActions(request, result, searchLine);
+ request.setAttribute("bookmarkActions", bookmarkActions);
+ request.setAttribute("token", token);
+ request.getRequestDispatcher("search.jsp").forward(request, response);
+ } else if (searchLine != null && searchLine.startsWith("f:")) {
+ // recherche fulltext dans bow
+ String fullText = searchLine.substring(2);
+
+ session.setAttribute("user", user);
+ initializeToken(session, user);
+ WikittyProxy proxy = BowProxy.getInstance();
+ Criteria criteria;
+ if (!fullText.isEmpty()) {
+ criteria = Search.query().keyword(fullText).
+ eq(Bookmark.FQ_FIELD_EMAIL, user.getEmail()).criteria().
+ addFacetField(Bookmark.FQ_FIELD_TAGS);
+
+ } else {
+ criteria = getBookmarkListCriteriaByUser(user, null);
+ }
+ PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria);
+ BookmarkActions bookmarkActions = createBookmarkActions(request, result, null);
+ request.setAttribute("bookmarkActions", bookmarkActions);
+ request.setAttribute("token", token);
+ request.getRequestDispatcher("search.jsp").forward(request, response);
+ } else if (searchLine != null && searchLine.startsWith("a:")) {
+ // on redirige vers l'alias demande
+ searchLine = searchLine.substring(2);
+ response.sendRedirect(BowConfig.getInstance().getAliasUrl() + searchLine);
+ } else {
+ // on fait une recherche sur le moteur de recherche configurer
+ WikittyProxy proxy = BowProxy.getInstance();
Preference pref = proxy.restore(Preference.class, user.getWikittyId());
-
+
String searchEngineURL = pref.getSearchEngineUrlResults();
if (searchEngineURL == null || "".equals(searchEngineURL)) {
BowConfig config = BowConfig.getInstance();
@@ -384,19 +425,6 @@
searchEngineURL = response.encodeRedirectURL(searchEngineURL);
response.sendRedirect(searchEngineURL);
- } else if (searchLine != null && searchLine.startsWith("a:")) { //Alias
- response.sendRedirect(BowConfig.getInstance().getAliasUrl() + searchLine.substring(2));
- } else {
- session.setAttribute("user", user);
- initializeToken(session, user);
- WikittyProxy proxy = BowProxy.getInstance();
- Criteria criteria = getBookmarkListCriteriaByUser(user, searchLine);
- criteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK);
- PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, criteria);// retrieve bookmarks by search
- BookmarkActions bookmarkActions = createBookmarkActions(request, result, searchLine);
- request.setAttribute("bookmarkActions", bookmarkActions);
- request.setAttribute("token", token);
- request.getRequestDispatcher("search.jsp").forward(request, response);
}
}
Modified: trunk/src/main/webapp/preferences.jsp
===================================================================
--- trunk/src/main/webapp/preferences.jsp 2010-12-17 13:49:56 UTC (rev 137)
+++ trunk/src/main/webapp/preferences.jsp 2010-12-19 14:15:36 UTC (rev 138)
@@ -99,7 +99,7 @@
<input type="text" name="bookmarks" id="bookmarks" value="<%=preference.getBookmarks()%>"/><br />
<label for="searchEngineUrlSuggestions">Search Engine URL Suggestions</label><br />
<input type="text" name="searchEngineUrlSuggestions" id="searchEngineUrlSuggestions" value="<%=preference.getSearchEngineUrlSuggestions()%>"/><br />
- <label for="searchEngineUrlResults">Search Engine URL Results</label><br />
+ <label for="searchEngineUrlResults">Search Engine URL Results ({searchTerms} will be replaced by your text)</label><br />
<input type="text" name="searchEngineUrlResults" id="searchEngineUrlResults" value="<%=preference.getSearchEngineUrlResults()%>"/><br />
<input type="submit" value="Change" />
<br /><br />
1
0
17 Dec '10
Author: jcouteau
Date: 2010-12-17 14:49:56 +0100 (Fri, 17 Dec 2010)
New Revision: 137
Url: http://chorem.org/repositories/revision/bow/137
Log:
Improve doc
Added:
trunk/src/site/rst/user/addBookmark.rst
trunk/src/site/rst/user/preferences.rst
trunk/src/site/rst/user/user.rst
Removed:
trunk/src/site/rst/user/token.rst
Modified:
trunk/src/site/rst/developper/installation.rst
trunk/src/site/rst/index.rst
trunk/src/site/rst/user/alias.rst
trunk/src/site/rst/user/importExport.rst
trunk/src/site/rst/user/openSearch.rst
trunk/src/site/rst/user/search.rst
trunk/src/site/site.xml
Modified: trunk/src/site/rst/developper/installation.rst
===================================================================
--- trunk/src/site/rst/developper/installation.rst 2010-12-10 15:55:34 UTC (rev 136)
+++ trunk/src/site/rst/developper/installation.rst 2010-12-17 13:49:56 UTC (rev 137)
@@ -28,6 +28,6 @@
Si vous souhaitez installer bow il vous suffit :
- de télécharger le war à cette adresse : http://maven.chorem.org/release/org/chorem/bow
-- de mettre le war dans le dossier webapps de tomcat
+- de déployer ce war dans un conteneur d'aplpication (par example Tomcat).
Le dépot des sources est à cette adresse : http://svn.chorem.org/svn/bow/
Modified: trunk/src/site/rst/index.rst
===================================================================
--- trunk/src/site/rst/index.rst 2010-12-10 15:55:34 UTC (rev 136)
+++ trunk/src/site/rst/index.rst 2010-12-17 13:49:56 UTC (rev 137)
@@ -24,14 +24,50 @@
Bow
===
+Quoi qu'est-ce ?
+----------------
+
Bow (Bookmark On the Web) est une application web permettant la gestion de ses
-marque-pages (bookmarks).
+marque-pages (bookmarks) développée en Java.
-Cette application vous permettra de consulter vos marque-pages où que vous soyez
-et de n'importe quel ordinateur pourvu d'une connexion internet, mais aussi de
-pouvoir en ajouter de nouveaux, les modifier ou les supprimer.
+Et ça fait quoi ?
+-----------------
-Ce site vous donne accès à la documentation :
+Bow vous permettra de consulter vos marque-pages où que vous soyez
+et de n'importe quel ordinateur pourvu d'une connexion Internet. Vous pourrez
+en ajouter de nouveaux, les modifier ou les supprimer.
-- utilisateur: qui vous décrira chaque caratéristique du programme.
-- développeur: qui s'adresse aux personnes désireuses de modifier des fonctionnalités ou d'en ajouter de nouvelles.
+Classification
+~~~~~~~~~~~~~~
+
+La classification n'est pas effectuée, comme sur la plupart
+des logiciels assurant les mêmes fonctions, sur un principe de dossiers, mais
+sur un principe de tags. Ces tags permettent d'assurer une navigation dans les
+marques-pages quelque soit le point d'entrée. Alors que sur une classification
+par dossiers, un seul point d'entrée est possible.
+
+Recherche
+~~~~~~~~~
+
+Le principe des tags permet une recherche en entonnoir, ou recherche par
+facettes, souvent observée sur les sites marchands, pour affiner la recherche.
+
+Recherche OpenSearch
+~~~~~~~~~~~~~~~~~~~~
+
+De plus en plus, les écrans se miniaturisent (netbooks, tablettes, ...). Aussi,
+l'équipe a décidé de ne pas proposer de "barre d'outils" à rajouter à son
+navigateur (ça prend de la place)mais plutot d'utiliser le principe
+d'OpenSearch, permettant ainsi
+d'utiliser la zone de recherche rapide de son navigateur. Comme tout le Web ne
+peux être marqué dans Bow, il y a toujours besoin d'utiliser un moteur de
+recherche. Et pour éviter de changer toutes les 2 secondes de moteur de
+recherche dans la barre de recherche, vous pouvez déclarer un moteur de
+recherche comme Seeks ou Google vers qui les recherches peuvent être redirigées.
+
+Ajout rapide de marque-pages
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Comme on n'a pas forcément envie de s'identifier dans Bow pour rajouter un
+marque-page, il est possible de marquer un lien dans son navigateur qui ajoute
+la page consultée dans Bow avec les tags définis.
\ No newline at end of file
Copied: trunk/src/site/rst/user/addBookmark.rst (from rev 136, trunk/src/site/rst/user/token.rst)
===================================================================
--- trunk/src/site/rst/user/addBookmark.rst (rev 0)
+++ trunk/src/site/rst/user/addBookmark.rst 2010-12-17 13:49:56 UTC (rev 137)
@@ -0,0 +1,57 @@
+.. -
+.. * #%L
+.. * bow
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Affero General Public License as published by
+.. * the Free Software Foundation, either version 3 of the License, or
+.. * (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Public License for more details.
+.. *
+.. * You should have received a copy of the GNU Affero General Public License
+.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
+.. * #L%
+.. -
+=====================
+Ajout de marque-pages
+=====================
+
+Il est possible d'ajouter des marque-pages de deux façons :
+
+Formulaire d'ajout/modification
+-------------------------------
+
+Le formulaire d'ajout/modification de marque-page vous permet d'ajouter
+simplement un marque-page.
+
+Marque-page dans votre navigateur
+---------------------------------
+
+Il est possible de marquer les deux liens d'ajout présent sous le lien
+"Preferences".
+
+Le lien "Bookmark add link (session)" se limite à la session (tant que vous êtes
+identifiés sur le site). C'est le plus adapté aux situations de mobilité
+(ordinateur d'un ami, ordinateur public, cyber-café,...)
+
+Le lien "Bookmark add link (permanent) est tout le temps valide. C'est le plus
+adapté pour votre ordianteur personnel.
+
+Pour les faire fonctionner, il suffit de les ajouter comme marque page du
+navigateur. Lorsque vous souhaitez enregistrer une page dans Bow, cliquez sur
+votre marque-page, une fenêtre apparaît. Cette fenêtre comprend un seul unique
+champ qui va vous permettre d'enregistrer votre marque-page. Il faut rentrer
+les informations de la manière suivante ::
+
+ Nom du marque-page|tag1 tag2 tag3
+
+Une fois que vous avez validé, le marque-page est enregistré.
Modified: trunk/src/site/rst/user/alias.rst
===================================================================
--- trunk/src/site/rst/user/alias.rst 2010-12-10 15:55:34 UTC (rev 136)
+++ trunk/src/site/rst/user/alias.rst 2010-12-17 13:49:56 UTC (rev 137)
@@ -21,9 +21,9 @@
.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
.. * #L%
.. -
-=====================
-Utilisation des alias
-=====================
+==============================================
+Utilisation des alias / Service d'URLS courtes
+==============================================
Il est possible d'associer un alias à un marque-page et d'utiliser l'adresse
de l'alias plutôt que celle d'origine. L'adresses de l'alias est de cette forme:
Modified: trunk/src/site/rst/user/importExport.rst
===================================================================
--- trunk/src/site/rst/user/importExport.rst 2010-12-10 15:55:34 UTC (rev 136)
+++ trunk/src/site/rst/user/importExport.rst 2010-12-17 13:49:56 UTC (rev 137)
@@ -21,22 +21,27 @@
.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
.. * #L%
.. -
-=====================
-Importion/Exportation
-=====================
+=============
+Import/Export
+=============
-Importation
-===========
+Import
+======
-Cette fonctionnalité vous permet d'importer des marque-pages depuis votre ordinateur.
-Les marque-pages importés auront comme tags les noms des dossiers auquels ils appartenaient.
-Le fichier à importer doit-être au format **HTML**.
+Vous pouvez importer les marque-pages présents sur votre navigateur favori. Pour
+pouvoir les importer dans Bow, vous devez au préalable les exporter, depuis
+votre navigateur, au format **HTML**.
-Pour importer un fichier il vous suffit de selectionner un fichier contenant vos informations
-en cliquant sur "parcourir" puis de cliquer sur "import".
+Pour importer votre fichier de marque-pages, sélectionnez votre fichier dans
+la section "Import Bookmarks" avec le bouton "Parcourir..." puis validez avec
+"Import".
-Exportation
-===========
+A noter que vos marques-pages auront pour tags les différents dossiers dans
+lesquels ils ont été placés dans votre navigateur.
-Pour exporter vos marque-pages, cliquez sur "Export bookmarks", votre fichier d'exportation
-sera au format HTML.
+Export
+======
+
+Pour exporter vos marque-pages, cliquez sur "Export bookmarks" sous la section
+d'import. Votre fichier d'exporter sera au format HTML afin de pouvoir le
+réimporter dans un navigateur.
Modified: trunk/src/site/rst/user/openSearch.rst
===================================================================
--- trunk/src/site/rst/user/openSearch.rst 2010-12-10 15:55:34 UTC (rev 136)
+++ trunk/src/site/rst/user/openSearch.rst 2010-12-17 13:49:56 UTC (rev 137)
@@ -21,16 +21,49 @@
.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
.. * #L%
.. -
-==========
-OpenSearch
-==========
+====================================
+OpenSearch/Barre de recherche rapide
+====================================
-Il est possible d'utiliser le moteur de recherche de bow dans la barre de recherche
-rapide du navigateur. Pour pouvoir l'ajouter il faut se connecter, puis choisir soit
-le moteur de recherche permanent ou temporaire. Le temporaire ne dure que le temps
-d'expiration de la session. Une fois ajouté vous pouvez l'utiliser à n'importe quel
-moment.
+Moteur de recherche de Bow
+~~~~~~~~~~~~~~~~~~~~~~~~~~
-Vous pouvez aussi effectuer une recherche mais cette fois ne pas utiliser le moteur de
-recherche de bow mais celui que vous avez défini au préalable. Pour cela préfixé
-votre recherche de **":s"**.
+Il est possible d'utiliser le moteur de recherche de Bow dans la barre de
+recherche rapide du navigateur. Pour pouvoir l'ajouter il faut se connecter à
+Bow, puis choisir soit le moteur de recherche permanent ou temporaire.
+Le temporaire ne dure que le temps d'expiration de la session. Une fois ajouté
+vous pouvez l'utiliser à n'importe quel moment.
+
+Moteur de recherche externe
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Vous pouvez aussi effectuer une recherche en utilisant un moteur de recherche
+externe. Cela vous permet de ne pas changer toutes les 2s de moteur de recherche
+dans votre barre de recherche rapide.
+
+Choisir son moteur de recherche externe
+---------------------------------------
+
+Vous pouvez choisir votre moteur de recherche externe dans les préférences de
+l'application.
+
+Renseignez les champs **Search Engine URL Suggestions** et **Search Engine URL
+Results**.
+
+Search Engine URL Suggestions correspond à l'URL retournant les propositions de
+recherche. Vous savez, quand vous tappez wiki on vous propose Wikipedia,...
+
+Search Engine URL Results correspond à l'URL retournant les résultats.
+
+Pour que tout cela fonctionne bien, il faut dire ou placer les termes de la
+recherche, pour cela utiliser **{searchTerms}**. Bow le remplacera par vos
+termes de recherche.
+
+Effectuer une recherche avec le moteur externe
+----------------------------------------------
+
+Pour cela préfixez votre recherche de **":"**. Par exemple, si je recherche::
+
+ :bow
+
+Cela recherchera bow dans mon moteur de recherche préféré.
Added: trunk/src/site/rst/user/preferences.rst
===================================================================
--- trunk/src/site/rst/user/preferences.rst (rev 0)
+++ trunk/src/site/rst/user/preferences.rst 2010-12-17 13:49:56 UTC (rev 137)
@@ -0,0 +1,15 @@
+===========
+Préférences
+===========
+
+Dans vos préférences, vous pouvez changer votre mot de passe ou votre adresse
+mail.
+
+Vous pouvez égalment regénérer votre token permanent. Cela correspond à votre
+identifiant de sécurité utilisé dans la barre de recherche rapide et le
+marque-page d'ajout. Vous devrez alors les réinitialiser.
+
+C'est également sur cette page que vous pouvez déterminer le nombre de
+marque-pages affichés sur la page d'accueil de bow, la couleur du site,
+le nombre de tags affichés dans le nuage et les URLs de votre moteur de
+recherche externe préféré.
\ No newline at end of file
Modified: trunk/src/site/rst/user/search.rst
===================================================================
--- trunk/src/site/rst/user/search.rst 2010-12-10 15:55:34 UTC (rev 136)
+++ trunk/src/site/rst/user/search.rst 2010-12-17 13:49:56 UTC (rev 137)
@@ -31,11 +31,12 @@
- Recherche par tags:
La recherche par tag va rechercher les marque-pages en fonction des tags qu'ils
possèdent. Il est possible de les taper manuellement ou de cliquer sur les tags
- du nuage de tags et ainsi d'effectuer une recherche en entonoire.
+ du nuage de tags permettant d'affiner la recherche.
- Recherche intégrale:
La recherche intégrale va retourner tous les marque-pages qui possèdent un des
- mots clés tapés dans la barre de recherche.
+ mots clés tapés dans la barre de recherche, que ce soit dans les tags, dans le
+ nom ou l'URL.
-Ces deux types de recherche retournent, si la recherche est vide, les marque-pages
-qui ne possèdent aucun tag.
+Ces deux types de recherche retournent, si la recherche est vide, les
+marque-pages qui ne possèdent aucun tag.
Deleted: trunk/src/site/rst/user/token.rst
===================================================================
--- trunk/src/site/rst/user/token.rst 2010-12-10 15:55:34 UTC (rev 136)
+++ trunk/src/site/rst/user/token.rst 2010-12-17 13:49:56 UTC (rev 137)
@@ -1,39 +0,0 @@
-.. -
-.. * #%L
-.. * bow
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2010 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-=====================
-Ajout de marque-pages
-=====================
-
-Il est possible d'ajouter des marque-pages de deux façons par l'intermédiaire:
-
-- Du formulaire d'ajout/modification.
-
-- Des liens d'ajout de marque-pages (session et permanent) :
- Ces liens permettent l'ajout de nouveaux marque-pages sans avoir
- à se connecter au site. Il suffit d'ajouter ces liens à vos favoris
- puis cliquez dessus lorsque vous souhaitez enregistrer une page. Une
- fenêtre apparait, complétée là et le tour est joué!
-
-Il existe deux types de lien, un qui n'est valable que le temps d'expiration de la session
-(pratique si vous utilisez temporairement un ordinateur) et l'autre de manière permanente.
Added: trunk/src/site/rst/user/user.rst
===================================================================
--- trunk/src/site/rst/user/user.rst (rev 0)
+++ trunk/src/site/rst/user/user.rst 2010-12-17 13:49:56 UTC (rev 137)
@@ -0,0 +1,16 @@
+Documentation utilisateur
+=========================
+
+* `Importer ses marque-pages`_
+* `Rechercher dans ses marque-pages`_
+* `Ajouter des marque-pages`_
+* `Créer des URLs courtes de ses marque-pages`_
+* `Faire des recherches depuis sa barre de recherche rapide`_
+* `Gérer ses préférences`_
+
+.. Importer ses marque-pages:: importExport.html
+.. Rechercher dans ses marque-pages:: search.html
+.. Ajouter des marque-pages:: addBookmark.html
+.. Créer des URLs courtes de ses marque-pages:: alias.html
+.. Faire des recherches depuis sa barre de recherche rapide:: openSearch.html
+.. Gérer ses préférences:: preferences.html
\ No newline at end of file
Modified: trunk/src/site/site.xml
===================================================================
--- trunk/src/site/site.xml 2010-12-10 15:55:34 UTC (rev 136)
+++ trunk/src/site/site.xml 2010-12-17 13:49:56 UTC (rev 137)
@@ -29,25 +29,23 @@
<bannerLeft>
<name>${project.name}</name>
+ <href>index.html</href>
</bannerLeft>
<body>
- <menu name="Utilisateur" inherit="top">
- <item name="Utilisation de bow">
- <item name="Importation/Exportation" href="user/importExport.html" />
+ <menu name="Utilisateur">
+ <item name="Import/Export" href="user/importExport.html" />
<item name="Recherche de marque-pages" href="user/search.html" />
- <item name="Ajout de marque-pages" href="user/token.html" />
- <item name="Utilisation des alias" href="user/alias.html" />
+ <item name="Ajout de marque-pages" href="user/addBookmark.html" />
+ <item name="Alias/URL courtes" href="user/alias.html" />
<item name="OpenSearch" href="user/openSearch.html" />
- </item>
+ <item name="Préférences" href="user/preferences.html" />
</menu>
- <menu>
- <item name="Développeur">
- <item name="Presentation" href="developper/presentation.html" />
- <item name="Installation" href="developper/installation.html" />
- </item>
+ <menu name="Utilisateur">
+ <item name="Presentation" href="developper/presentation.html" />
+ <item name="Installation" href="developper/installation.html" />
</menu>
<menu ref="reports"/>
1
0